Python3 Itertools Ошибка
import itertools
import time
symbols = ['D','E','F','G','2','4','_']
password = 'DGEF_42F4'
lenght = 9
startTime = time.time()
counter = 0
for i in itertools.combinations_with_replacement(symbols, lenght):
activeCombination = ''.join(i)
counter += 1
if password == activeCombination:
print(f' Time elapsed - {time.time() - startTime}\n Number of combinations - {counter}\n Password - {activeCombination} ')
Этот код должен подбирать пароль, который указан в поле password. Но при запуске ничего не выводится и все завершается, без ошибок. Ничего не выводится(абсолютно). Ошибок нет, но и результата нет. Тестировал этот код на Termux, ибо не имел доступ к ПК. Подскажите, что не так?
Ответы (2 шт):
Автор решения: S. Nick
→ Ссылка
Я не знаю алгоритма combinations_with_replacement, но если вы на вход подадите больше символов, то у вас все получится:
import itertools
symbols = 'DEFG24_' * 5 # <<<=======
lenght = 9
password = 'DGEF_42F4'
for i in itertools.combinations_with_replacement(symbols, lenght):
activeCombination = ''.join(i)
if password == activeCombination:
print(f'Password - {activeCombination}')
break
Автор решения: Danis
→ Ссылка
используйте itertools.product
for i in itertools.product(symbols, repeat=lenght):
activeCombination = ''.join(i)
counter += 1
if password == activeCombination:
print(f' Time elapsed - {time.time() - startTime}\n Number of combinations - {counter}\n Password - {activeCombination} ')