这次python AC了!!
组合问题相较于全排列问题,在于每一次递归的初始位置,排列问题每次都是从头开始查找满足条件的数,但是组合问题查找是从上一次循环的下一个位置开始的,这点需要注意!
visit=[0]*20result=[0]*20def dfs(n,r,sta,deep): if deep==r: for i in range(r): print("{:>3}".format(result[i]),end="") print() return for i in range(sta,n): if visit[i]==0: visit[i]=1 result[deep]=i+1 dfs(n,r,i+1,deep+1) visit[i]=0if __name__=="__main__": n,r=map(int,input().split()) dfs(n,r,0,0)