3

リストがあり、可能なすべての場所に x 1 と 0 を追加して、すべてのリストを可能にしたいと考えています。たとえば、x = 2 とします。

l=[0,1]

最初に、長さ 2 のすべての可能なリストを最初に配置して[0,0,0,1][0,1,0,1][1,0,0,1]、を与え[1,1,0,1]ます。次に、開始位置に 0 または 1 を配置し、位置 2 に 0 または 1 を配置 [0,0,0,1]します。[0,0,1,1][1,0,0,1][1,0,1,1]

次に、2 ビットを挿入できるリスト内の可能な位置のペアごとに同じことを行います。もちろん、多くの重複がありますが、を使用してそれらを削除できsetます。

別の例、今回は x = 1

l=[1,1]

完全な出力は[0,1,1], [1,0,1], [1,1,0], [1,1,1].

これを行うスマートな方法はありますか?

4

3 に答える 3

1

あなたが望むのは次のとおりだと思いますitertools.product

import itertools
x = 2
l = [0, 1]
print list(itertools.product(l + [0, 1], repeat=len(l)+x))
于 2013-09-24T10:26:48.080 に答える