Python:获取二进制排列,但控制循环流

Python: Getting binary permutations, but controlling loop flow

首先,我读了这个:all permutations of a binary sequence x bits long

这与我想要的类似,但我不想提前生成所有排列。我想要的更多是一个发电机,我可以随时通过并停止(出于效率原因,我有我想停止的截止条件)。

我想知道是否有一种优雅的方法可以做到这一点 Python。上述问题的答案都涉及“.join”,但我认为这在这里行不通。我假设我需要使用 itertools。

有什么想法吗?

由于您喜欢 link 答案中的解决方案,这里是生成器版本:

for pattern in ("".join(seq) for seq in itertools.product("01", repeat=3)):
    ...

使用括号而不是方括号 [ ... ] 为您提供了一个根据需要创建值的生成器。

几乎可以很容易地将任何函数变成生成器;详情请参阅 the python tutorial