1. \(全排列C_{m}^{n}\)的实现
【要求】输入m,n, 输出所有可能的索引组合
def cmn(m, n):
if n ==1:
return [[i] for i in range(1, m+1)]
elif m==n:
return [ list(range(1, m+1)) ]
else:
temp1 = cmn(m-1, n)
temp2 = [ i+[m] for i in cmn(m-1, n-1)]
return temp1 + temp2
if __name__ == '__main__':
print( cmn(4, 3) )
2. 全部子集
def subsets(aim):
if len(aim) == 1:
return [aim]
result = subsets(aim[1:])
return result + [[aim[0]] + s for s in result]