なしitertools順列は反復
permutations([0,1,1])
戻り
(0, 1, 1), (0, 1, 1), (1, 0, 1), (1, 1, 0), (1, 0, 1), (1, 1, 0)
からコマンド置換は、任意のリストは、ある
(0,1,1), (1,0,1), (1,1,0)
を戻す方法があります整数はすべての順列を取得しますが、元のリストの要素が繰り返される場合、反復要素はありません。
なしitertools順列は反復
permutations([0,1,1])
戻り
(0, 1, 1), (0, 1, 1), (1, 0, 1), (1, 1, 0), (1, 0, 1), (1, 1, 0)
からコマンド置換は、任意のリストは、ある
(0,1,1), (1,0,1), (1,1,0)
を戻す方法があります整数はすべての順列を取得しますが、元のリストの要素が繰り返される場合、反復要素はありません。
あなたがセットに返された値をキャストすることができます
print(list(set(permutations([0,1,1]))))
出力:
[(0, 1, 1), (1, 1, 0), (1, 0, 1)]
これは確かにそれを実行する方法です。 –
問題は、識別可能な順列の数が、順列の総数よりもずっと小さくなる可能性があるため、一般的には非常に効率が悪いです。それはもちろん問題の大きさに左右されます。いくつかのユースケースについては、それ以上何もするのは無意味なので、おそらく+1 –
は常にハッシュ可能要素はありますか? –
ウィレムは 'set(permutations([0,1,1]))'を意味します。 –