Я написал простую функцию, которая преобразует буквы в слова в их «литовые» числовые копии.'leet' program - получение всех перестановок
def Leet(word):
letters = list(word.lower())
for n, letter, in enumerate(letters):
if letter == 'o':
letters[n]= '0'
elif letter == 'i':
letters[n]= '1'
elif letter == 'z':
letters[n]= '2'
elif letter == 'e':
letters[n]= '3'
elif letter == 'a':
letters[n]= '4'
elif letter == 's':
letters[n]= '5'
elif letter == 'g':
letters[n]= '6'
elif letter == 't':
letters[n]= '7'
elif letter == 'b':
letters[n]= '8'
return ''.join(letters)
поэтому, когда я входной 'zit'
, программа будет возвращать '217'
.
Мой вопрос, как я могу изменить его, чтобы дать мне все возможные перестановки ('217'
, '2it'
, 'z1t'
, 'zi7'
, '21t'
и т.д.)? Я читал о itertools
, но я в тупике, как применить его к моей функции.
Обратите внимание, что словарь '{ 'о': '0', ...}' сделает это ** ** много аккуратнее. – jonrsharpe