2017-05-10 42 views
0

私はitertools.permuatationsメソッドを使用すると、すべての可能な順列を見つけようとしていますが、重複を取得しようとしています。Pythonを使った順列

import itertools 
def solution(A): 
    for each in itertools.permutations(list(A)): 
     print each 
     print '----' 

solution('1214') 

結果: -

('1', '2', '1', '4') 
---- 
('1', '2', '4', '1') 
---- 
('1', '1', '2', '4') 
---- 
('1', '1', '4', '2') 
---- 
('1', '4', '2', '1') 
---- 
('1', '4', '1', '2') 
---- 
('2', '1', '1', '4') 
---- 
('2', '1', '4', '1') 
---- 
('2', '1', '1', '4') 
---- 
('2', '1', '4', '1') 
---- 
('2', '4', '1', '1') 
---- 
('2', '4', '1', '1') 
---- 
('1', '1', '2', '4') 
---- 
('1', '1', '4', '2') 
---- 
('1', '2', '1', '4') 
---- 
('1', '2', '4', '1') 
---- 
('1', '4', '1', '2') 
---- 
('1', '4', '2', '1') 
---- 
('4', '1', '2', '1') 
---- 
('4', '1', '1', '2') 
---- 
('4', '2', '1', '1') 
---- 
('4', '2', '1', '1') 
---- 
('4', '1', '1', '2') 
---- 
('4', '1', '2', '1') 
---- 
+1

入力は '( '1214')'です。それは '( '1234')'であるべきですか?それ以外の場合は、期待される出力はどのように見えますか?まだ4桁ですが、重複はありませんか? – roganjosh

+0

2つの1があるので、重複が予想されるはずです。 –

+0

これは面倒な問題であり、ありがたいことに重複しています。 –

答えて

1

入力はそれに2つの1の文字を持っているので、あなたは、重複を取得します。 set()を使用して削除することができます。

import itertools 
def solution(A): 
    for each in set(itertools.permutations(list(A))): 
     print each 
     print '----' 

solution('1214') 
関連する問題