注意:成员元素各不相同

组合

  1. def combination(nums, k):
  2. ans = [[]]
  3. for i in range(k):
  4. ans = [pre + [sub]
  5. for pre in ans for sub in nums if i == 0 or sub > pre[-1]]
  6. return ans
  7. nums = [7, 1, 2, 3, 4, 5, 6, 8]
  8. n = 2
  9. c = combination(nums, n)
  10. 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))