長さ r の Vigenere 暗号鍵の遅延反復可能なコレクションを生成しようとしています。itertools
とそのpermutations()
方法を知っています。ABCD
ただし、これは、ABCE
、 ...などのキーを生成しますが、 のABCF
ようなことは決してしませんAABC
。
したがって、基本的には、反復的ではない文字のタプルまたは文字列が必要です (つまり、反復キーを半分に分割して 2 つの同一の半分を得ることができます) が、重複する文字を含めることができます。良い例: AABABA
、ではありませんAABAAB
。
このようなキーを生成せず、3 文字を超えるキーを調べたいときに RAM を爆破しないように遅延反復されるコレクションを作成するにはどうすればよいですか?