注意:成员元素各不相同
组合
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 ans
nums = [7, 1, 2, 3, 4, 5, 6, 8]
n = 2
c = 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))