1、Python itertools模塊combinations(iterable, r)方法可以創建一個迭代器,返回iterable中所有長度為r的子序列,返回的子序列中的項按輸入iterable中的順序排序。
import itertools list1 = [1, 3, 4, 5] list2 = list(itertools.combinations(list1, 2)) print(list2) 返回結果: [(1, 3), (1, 4), (1, 5), (3, 4), (3, 5), (4, 5)]
2、實現一組數據的所有排列組合
import itertools list1 = [1, 3, 4, 5] list2 = [] for i in range(1, len(list1)+1): iter1 = itertools.combinations(list1, i) list2.append(list(iter1)) print(list2) 返回結果: [[(1,), (3,), (4,), (5,)], [(1, 3), (1, 4), (1, 5), (3, 4), (3, 5), (4, 5)], [(1, 3, 4), (1, 3, 5), (1, 4, 5), (3, 4, 5)], [(1, 3, 4, 5)]]