用库的话更简单,想自己写的话用递归也直观, 只需要想清楚C(m,n) = C(m-1,n) + C(m-1,n-1),就可以写递归函数了
python:
def all_combine(str):
res = []
for i in range(len(str)):
res = res + combine(str,i+1)
return res
# 返回s字符长度为n 的组和,s里没有重复字符
def combine(s, n):
if n < 1:
return []
if n == 1:
return [c for c in s]
if len(s) < 1:
return []
return [s[0] + p for p in combine(s[1:], n-1)] + combine(s[1:], n)
--
FROM 123.126.24.*