概要
Pythonで、リストやタプルなどの要素をすべての組み合わせで試すことを「総当たり」と呼びます。
itertoolsを用いる方法
以下に、リストの要素をすべての組み合わせで試す例を示します。
from itertools import combinations # リストを作成する items = [1, 2, 3] # 組み合わせを生成する for c in combinations(items, 2): print(c)
上記のコードでは、combinations 関数を使用して、リストの要素をすべての組み合わせで生成しています。
combinations 関数は、itertools モジュールに含まれるジェネレータ関数であり、要素を組み合わせる際に、順序は考慮されません。
上記のコードを実行すると、以下のように出力されます。
(1, 2) (1, 3) (2, 3)
手動で記述する方法
以下に、手動で組み合わせを生成する例を示します。
# リストを作成する items = [1, 2, 3] # 組み合わせを生成する for i in range(len(items)): for j in range(i + 1, len(items)): c = (items[i], items[j]) print(c)
上記のコードでは、2つの for ループを使用して、リストの要素をすべての組み合わせで生成しています。
この方法でも、順序は考慮されず、同じ組み合わせが複数生成されることはありません。
上記のコードを実行すると、以下のように出力されます。
(1, 2) (1, 3) (2, 3)