假设我运行以下脚本
try:
while 1:
# Iteration processess of possibel keys
for length in range(7,8): # only do length of 7
for attempt in itertools.permutations(chars, length):
print(''.join(attempt))
except keyboardInterrupt:
print "Keybord interrupt, exiting gracefully anyway."
sys.exit()
它将开始打印
^{pr2}$但是假设我退出/关闭脚本,迭代在ABCDEFJ
处停止。在
是否可以从那个位置(ABCDEFJ
)开始,这样我就不必迭代以前迭代过的(ABCDEFG, ABCDEFH, ABCDEFI
)
如何选择itertools.permutations
的起点?在
如果不退出脚本,您可以简单地保留迭代器并在以后继续使用它。由于重新开始,迭代器将在从头开始的状态下创建。
itertools.permutations
没有用于中间启动的特殊API,而且生成器通常也没有这个特性,因为它们具有在迭代时演化的内部状态。因此,在新的生成器中间启动的唯一方法是消耗给定数量的元素并将其丢弃。在不能。没有API支持它,并且无法序列化这些对象:
您有两种选择:
相关问题 更多 >
编程相关推荐