Python itertools комбинации управление итерацией
Я использую itertools для генерации комбинаций, но я хотел бы контролировать выход и иметь возможность запрашивать следующую запись:
from itertools import permutations
def getPass():
chars = '4$5%6^7&'
passd = ''
for comb in permutations(chars):
passd = ''.join(comb)
return passd
while(True):
print getPass()
Но я не могу найти никакой соответствующей документации. Как мне это сделать?1 ответ:
Можно использовать генератор :
from itertools import permutations def getPass(): chars = '4$5%6^7&' for comb in permutations(chars): yield ''.join(comb) for i in getPass(): print(i) input('\ncontinue?')
Или даже выражение генератора :
from itertools import permutations def getPass(): return (''.join(p) for p in permutations('4$5%6^7&')) for i in getPass(): print(i) input('\ncontinue?')
Вывод:
4$5%6^7& continue? 4$5%6^&7 continue? 4$5%67^& continue? 4$5%67&^ continue? 4$5%6&^7 continue? ...