在大佬的讲解下终于明白了这个基础问题qaq
#include<bits/stdc++.h>
using namespace std;
int a[1001],f[1001],ba[1001],n;
void permutation(int m){
if(m==n){
for(int i=0;i<n;i++)
cout<<ba[i]<<" ";
cout<<endl;
return ;
}else{
for(int i=n-1;i>=0;i--){//如果写成(i=0;i<n;i++)则就成了字典序全排列
if(!f[a[i]]){
f[a[i]]=1;
ba[m]=a[i];
permutation(m+1);
f[a[i]]=0;
}
}
}
}
int main(){
cin>>n;
for(int i=0;i<n;i++)
a[i]=i+1;
permutation(0);
return 0;
}