2013-06-07 1 views
3

Я использую itertools для создания комбинаций, но я хотел бы контролировать выход и быть в состоянии запросить следующую запись:Python 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() 

Но я не смог найти любую соответствующую документацию. Как мне это сделать?

ответ

3

Вы можете использовать generator:

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?') 

или даже generator expression:

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? 
...