2017-12-30 14 views
-1

なし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) 

を戻す方法があります整数はすべての順列を取得しますが、元のリストの要素が繰り返される場合、反復要素はありません。

+0

は常にハッシュ可能要素はありますか? –

+0

ウィレムは 'set(permutations([0,1,1]))'を意味します。 –

答えて

0

あなたがセットに返された値をキャストすることができます

print(list(set(permutations([0,1,1])))) 

出力:

[(0, 1, 1), (1, 1, 0), (1, 0, 1)] 
+2

これは確かにそれを実行する方法です。 –

+2

問題は、識別可能な順列の数が、順列の総数よりもずっと小さくなる可能性があるため、一般的には非常に効率が悪いです。それはもちろん問題の大きさに左右されます。いくつかのユースケースについては、それ以上何もするのは無意味なので、おそらく+1 –