2017-01-10 18 views
0

最近、私は最近pythonを取り上げて、複数の単語のすべての組み合わせをすべて取得しようとしています。私はitertoolsを見てきましたが、私の望む結果を達成できませんでした。実用的な例で説明するのは簡単です。これは私が達成しようとしているものです:すべての可能な組み合わせを組み合わせて単語を追加する

somestring = "cat, cake, apples" 
result = itertools magik 
print result 

>>> catcake, catapples, cakecat, cakeapples, applescat, applescake 

これまでのところ、これは私がこれを達成するために得ている最も近いですが、それは可能なすべての反復を返しません:

from itertools import combinations 
print ["".join(a) for a in combinations(["cat", "cake", "apples"], 2)] 

>>> ['catcake', 'catapples', 'cakeapples'] 

すべてのヘルプははるかになります感謝。

+0

あなたは 'permutations'を試しましたか?組み合わせのead? –

答えて

1

>>> print(["".join(a) for a in permutations(["cat", "cake", "apples"], 2)]) 
['catcake', 'catapples', 'cakecat', 'cakeapples', 'applescat', 'applescake'] 
+0

私は実際には数分前にこの答えからちょうどインチだったと思います。ありがとう、これは完全に働いた! – n0rd

1

これはcombinations順序はない事柄を行うには、permutationsには関係ないので、これは、たまたま

from itertools import permutations 
print ["".join(a) for a in permutations(["cat", "cake", "apples"], 2)] 
#['catcake', 'catapples', 'cakecat', 'cakeapples', 'applescat', 'applescake'] 

を動作するはずです例えば:あなたは実際にはないcombinationspermutationsを探している

'(cat,cake)' == '(cake, cat)' # Combinations 
'(cat,cake)' != '(cake, cat)' # Permutations 
関連する問題