注意:成员元素各不相同
组合
def combination(nums, k):ans = [[]]for i in range(k):ans = [pre + [sub]for pre in ans for sub in nums if i == 0 or sub > pre[-1]]return ansnums = [7, 1, 2, 3, 4, 5, 6, 8]n = 2c = combination(nums, n)print(c, len(c))
排列
def permutation(nums, k):
ans = [[]]
# 实现递归
for i in range(k):
ans = [pre + [sub] for pre in ans for sub in nums if sub not in pre]
return ans
nums = [7, 1, 2, 3, 4, 5, 6, 8]
n = 2
c = permutation(nums, n)
print(c, len(c))
