如何生成前 n 个排列然后暂停并重新启动?

how to generate first n permutations then pause and restart?

简单的问题我有来自的代码:

from itertools import permutations
ListX=["A","B","C","(",")","#"]
perm_iterator = list(permutations(ListX))
print(list(perm_iterator))

如何暂停、恢复、停止、重新启动迭代?

如何查看以 100 为步长的迭代?

步长为 n?

您可以获得迭代器的无限循环副本,然后使用 cycleitertools 中的 islice 从中获取 n 的块。

import itertools

n_chunks = 30
chunk_size = 100
l = ["A","B","C","(",")","#"]

perm_iterator = itertools.permutations(l)
loop_perms = itertools.cycle(perm_iterator)
for n in range(n_chunks):
    print(list(itertools.islice(loop_perms, chunk_size)))