用搜索+回溯做的
#include<bits/stdc++.h>
using namespace std;
long long arr[10],n,r,vis[10];
void dfs(long long det,long long cnt){
if(det==r){
for(int i=0;i<r;i++){
cout<<setw(3)<<arr[i];
}
cout<<endl;
}else{
for(int i=cnt+1;i<=n;i++){
if(vis[i]==0){
arr[det]=i;
vis[i]=1;
dfs(det+1,i);
vis[i]=0;
}
}
}
}
int main(){
cin>>n>>r;
memset(vis,0,sizeof(vis));
dfs(0,0);
return 0;
}