C++ 代码
#include<iostream>
#include<algorithm>
using namespace std;
const int N=10;
int p[N],n;
bool status[N];
void dfs(int u){
if(u==n){
for(int i=0;i<n;i++){
cout<<p[i]<<" ";
}
cout<<endl;
return;
}
for(int i=0;i<n;i++){
if(status[i]==true){
p[u]=i+1;
status[i]=false;
dfs(u+1);
status[i]=true;
}
}
}
int main(){
cin>>n;
for(int i=0;i<n;i++){status[i]=true;}
dfs(0);
return 0;
}