Seja a tabela de correspondência abaixo:
Escreva um script que, dado um número de sete dígitos, gere todas as combinações possíveis de palavras de sete letras correspondentes a esse número. Existem 2.187 (3^7) dessas combinações. Evite números de telefone com dígitos 0 e 1 (para os quais nenhuma letra corresponde)
Tentei fazer assim:
import itertools
letters = [' ', ' ', 'ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PRS', 'TUV', 'WXY']
telefone = 2345678
total = ''
for i in str(telefone):
total += letters[int(i)]
anagramas = []
for anagrama in itertools.combinations(total, len(str(telefone))):
anagramas.append(''.join(anagrama))
print(anagramas)
Mas são geradas MUITO mais combinações do que o problema quer.... Alguma ideia? Alguém conseguiria me ajudar?