我正在尝试生成长度为 r 的 Vigenere 密码密钥的可延迟迭代集合。我知道itertools
和permutations()
方法。但是,这会生成诸如ABCD
, ABCE
, ABCF
... 之类的键,但它永远不会执行诸如AABC
.
所以基本上,我需要不重复的元组或字符串(也就是说,可以将重复的键切成两半以获得相同的两半),但可以包含重复的字符。好例子:AABABA
,不是AABAAB
。
我怎样才能创建这样一个集合,它不会生成这样的密钥,并且是延迟迭代的,所以当我想探索超过 3 个字符的密钥时,我不会炸毁我的 RAM?