2017-01-20 18 views
0

は私のコードです:順列と削除タプル

import itertools 
def permutations(string): 
    if len(string) <= 1: 
     return string 
    return itertools.permutations(string) 

'ab'が入力された場合、それは[('a', 'b'), ('b', 'a')]

を返し、私はタプルのアイテムを組み合わせて、そのようなリスト項目の中にタプルを変更することができます任意の方法はあります返すもの:['ab', 'ba']

+0

リストの理解を使用してください。 – pylang

答えて

1

文字列は繰り返し可能と見なされ、itertools.permutationsによってタプルに結合されます。

だけ(長い順列上で動作します)タプルにstr.joinを使用し、文字列としてそれらをバックに変換するには:

["".join(x) for x in [('a', 'b'), ('b', 'a')]] 

をお使いの場合には:map

["".join(x) for x in itertools.permutations(string)] 
+0

こんにちは、返信ありがとうございます。リストは重複して返されましたが、それらを削除するためにset()を追加しています。ありがとう:) –

+2

多分あなたは 'itertools.combinations'を望んでいました。 –

1
[a+b for a,b in itertools.permutations(string)] 
0

map(lambda(x):''.join(x), itertools.permutations(string)) 
関連する問題