简单的dfs:
#include<stdio.h>
int n,r;
int num[11];
void dfs(int cur,int k){
if(cur+k<=2) return ;
if(cur==r){
for(int i=0;i<r;i++)
printf("%d",num[i]);
printf("\n");
}
else for(int i=k;i>0;i--){
num[cur]=i;
dfs(cur+1,i-1);
}
}
int main(){
scanf("%d%d",&n,&r);
dfs(0,n);
return 0;
}