rendered paste body#include<stdio.h>
int permute[20];
int a[20];
int N;
void inita()
{
int i;
for(i=0;i<20;i++)
a[i]=i;
}
void shift(int n)
{
int i;
for(i=n;i<N;i++)
a[i]=a[i+1];
}
long fact(int n)
{
int fact=1;
int i;
for(i=1;i<=n;i++)
fact=fact*i;
return fact;
}
void permuter(int m)
{
long i;
int k=m-1;
int j;
int l;
int flag=0,f=0;
int r;
for(i=0;i<fact(m);i++)
{
inita();
l=i;
k=m-1;
f=0;
for(j=0;j<m;j++)
{
r=l/fact(k);
l=l%fact(k);
k--;
permute[j]=a[r];
shift(r);
}
for(j=0;j<m;j++)
{
printf("%d",permute[j]+1);
}
printf("\n");
}
}
int main()
{
N=7;
permuter(N);
return 0;
}