です手配
あなたがitertools moduleの順列を使用できるように、リストのすべての配置は、「順列」のようになります。
import itertools
string = ("red blue black")
all_arrangements = list(itertools.permutations(string.split()))
if string in [' '.join(i) for i in all_arrangements]:
print "cool"
配置があなたの文字列に基づいて生成されるため、あなたのif文を満たすことを期待することができます「if
」ステートメントのロジックをさらに変更しない限り、「cool」が常に出力されます。
は、より良い次のコードで上記if
文ブロックを交換し、一致したあなたの文字列のどの配置確認することができ、上記のコードで何が起こっているかを説明するには、次の
print "checking for ", string
for arrangement in all_arrangements:
if string == ' '.join(arrangement):
print arrangement , "cool"
else:
print arrangement
出力:
checking for red blue black
('red', 'blue', 'black') cool
('red', 'black', 'blue')
('blue', 'red', 'black')
('blue', 'black', 'red')
('black', 'red', 'blue')
('black', 'blue', 'red')
これが役に立ちます。
[Pythonでリストのすべての順列を生成する方法](http://stackoverflow.com/questions/104420/how-to-generate-all-permutations-of-a-list-in-python ) – mkrieger1