python 排列组合可以用 itertools 库
排列
从 l 中选择 3 个元素,进行排列,允许选择有重复的
from itertools import product
l = [1, 2, 3]
print list(product(l, repeat=3))
组合
从 l 中选择 3 个元素进行组合,没有选择重复的元素
from itertools import combinations
l = [1, 2, 3, 4, 5]
print (list(combinations(l, 3)))
排列组合
从 s 中选择 4 个元素进行排列组合,不会选出重复元素
s = 'K Q 6 J A'.split()
from itertools import permutations
num_orders = list(permutations(s, 4))
print(num_orders)