#include<bits/stdc++.h>
using namespace std;
int a[10]={1,2,3,4,5,6,7,8,9,10};
void dfs(int s,int t){
if(s==t){
for(int i=0;i<=t;i++)
cout<<a[i]<<" ";
cout<<";";
}
for(int i=s;i<=t;i++){//i=s是这个算法的精髓,详情看草稿纸。
swap(a[s],a[i]);//交换两者位置
dfs(s+1,t);
swap(a[s],a[i]);//复位
}
}
int main(){
int n=3;//假设前三位排列
dfs(0,n-1);
return 0;
}