【问题标题】:Python itertools combinations iteration controlPython itertools组合迭代控制
【发布时间】:2013-06-07 11:59:15
【问题描述】:
我正在使用 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()
但我找不到任何相关文档。我该怎么做?
【问题讨论】:
标签:
python
iteration
combinations
itertools
【解决方案1】:
你可以使用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&
继续?
4$5%6^&7
继续?
4$5%67^&
继续?
4$5%67&^
继续?
4$5%6&^7
继续?
...