#include<bits/stdc++.h>
using namespace std;
int a[10],vis[10];//vis shuzu
int n,r;
void dfs(int x){//现在处理第x个位置上的数
if(x>r){//终点
for(int i =1;i<=r;i++){
cout<<a[i]<<" ";
}
cout<<endl;
return ;
}
for(int i=1;i<=n;i++){//一共有n种可执行方案
if(vis[i]==0){//判断当前方案是否可行
a[x]=i;//记录当前使用的数
vis[i]=1;//标记该数字已经使用
dfs(x+1);
vis[i]=0;//回溯
}
}
}
int main(){
cin>>n>>r;
dfs(1);//从第一位开始
return 0;
}
评论区