首先創建的字母合適的名單爲您提供的數字,然後使用Python的itertools.product
創造這些信件所有可用的組合如下:
from itertools import product
letters = [[""], [""], ["a","b","c"], ["d",'e','f'], ['g','h','i'],
['j','k','l'], ['m','n','o'], ['p','q','r','s'], ['t','u','v'], ['w','x','y','z']]
for combo in product(*(letters[x] for x in [6,8,3,7])):
print combo
對於6837,您將得到以下輸出:
('m', 't', 'd', 'p')
('m', 't', 'd', 'q')
('m', 't', 'd', 'r')
('m', 't', 'd', 's')
('m', 't', 'e', 'p')
('m', 't', 'e', 'q')
('m', 't', 'e', 'r')
('m', 't', 'e', 's')
('m', 't', 'f', 'p')
('m', 't', 'f', 'q')
('m', 't', 'f', 'r')
('m', 't', 'f', 's')
('m', 'u', 'd', 'p')
('m', 'u', 'd', 'q')
('m', 'u', 'd', 'r')
('m', 'u', 'd', 's')
('m', 'u', 'e', 'p')
('m', 'u', 'e', 'q')
('m', 'u', 'e', 'r')
('m', 'u', 'e', 's')
('m', 'u', 'f', 'p')
('m', 'u', 'f', 'q')
('m', 'u', 'f', 'r')
('m', 'u', 'f', 's')
('m', 'v', 'd', 'p')
('m', 'v', 'd', 'q')
('m', 'v', 'd', 'r')
('m', 'v', 'd', 's')
('m', 'v', 'e', 'p')
('m', 'v', 'e', 'q')
('m', 'v', 'e', 'r')
('m', 'v', 'e', 's')
('m', 'v', 'f', 'p')
('m', 'v', 'f', 'q')
('m', 'v', 'f', 'r')
('m', 'v', 'f', 's')
('n', 't', 'd', 'p')
('n', 't', 'd', 'q')
('n', 't', 'd', 'r')
('n', 't', 'd', 's')
('n', 't', 'e', 'p')
('n', 't', 'e', 'q')
('n', 't', 'e', 'r')
('n', 't', 'e', 's')
('n', 't', 'f', 'p')
('n', 't', 'f', 'q')
('n', 't', 'f', 'r')
('n', 't', 'f', 's')
('n', 'u', 'd', 'p')
('n', 'u', 'd', 'q')
('n', 'u', 'd', 'r')
('n', 'u', 'd', 's')
('n', 'u', 'e', 'p')
('n', 'u', 'e', 'q')
('n', 'u', 'e', 'r')
('n', 'u', 'e', 's')
('n', 'u', 'f', 'p')
('n', 'u', 'f', 'q')
('n', 'u', 'f', 'r')
('n', 'u', 'f', 's')
('n', 'v', 'd', 'p')
('n', 'v', 'd', 'q')
('n', 'v', 'd', 'r')
('n', 'v', 'd', 's')
('n', 'v', 'e', 'p')
('n', 'v', 'e', 'q')
('n', 'v', 'e', 'r')
('n', 'v', 'e', 's')
('n', 'v', 'f', 'p')
('n', 'v', 'f', 'q')
('n', 'v', 'f', 'r')
('n', 'v', 'f', 's')
('o', 't', 'd', 'p')
('o', 't', 'd', 'q')
('o', 't', 'd', 'r')
('o', 't', 'd', 's')
('o', 't', 'e', 'p')
('o', 't', 'e', 'q')
('o', 't', 'e', 'r')
('o', 't', 'e', 's')
('o', 't', 'f', 'p')
('o', 't', 'f', 'q')
('o', 't', 'f', 'r')
('o', 't', 'f', 's')
('o', 'u', 'd', 'p')
('o', 'u', 'd', 'q')
('o', 'u', 'd', 'r')
('o', 'u', 'd', 's')
('o', 'u', 'e', 'p')
('o', 'u', 'e', 'q')
('o', 'u', 'e', 'r')
('o', 'u', 'e', 's')
('o', 'u', 'f', 'p')
('o', 'u', 'f', 'q')
('o', 'u', 'f', 'r')
('o', 'u', 'f', 's')
('o', 'v', 'd', 'p')
('o', 'v', 'd', 'q')
('o', 'v', 'd', 'r')
('o', 'v', 'd', 's')
('o', 'v', 'e', 'p')
('o', 'v', 'e', 'q')
('o', 'v', 'e', 'r')
('o', 'v', 'e', 's')
('o', 'v', 'f', 'p')
('o', 'v', 'f', 'q')
('o', 'v', 'f', 'r')
('o', 'v', 'f', 's')
輸出是否可以修改,這樣我就可以用'over'代替[('o','v','e','r')]。謝謝。 – kevbuntu
我編輯這個使用'.join'爲每個字母組。我還刪除了返回重複的額外迭代。 – tijko
感謝您的編輯 – kevbuntu