#include<iostream>
#include<algorithm>
using namespace std;
int main(){
    int  a[100];
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
        a[i]=i;
    sort(a+1,a+n+1);
    do{
        for(int i=1;i<=n;i++)
            cout<<char(a[i]+48)<<' ';
        cout<<endl;
    }while(next_permutation(a+1,a+n+1));
}

以排好的数组,输出他的全排列;

按字典序排序 当没有更小的时候输出0,否则1;