#include<iostream> using namespace std; const int N=10; int a[N]; bool b[N];//0表示该数没有用过,1表示该数已经用过了 int m; void dfs(int u) { if(u>m){ for(int i=1;i<=m;i++) { cout<<a[i]<<" "; } puts(""); return ; } //依次枚举每个数,看当前位置可以填哪个数 for(int i=1;i<=m;i++) { if(b[i]==false){ a[u]=i; b[i]=true; dfs(u+1); a[u]=0; b[i]=false; } } } //看每个位置可以放哪些数 int main() { cin>>m; dfs(1); return 0; }