在大佬的讲解下终于明白了这个基础问题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;}