#include<stdio.h>
void swap(int *a, int *b){
int c;
c = *a;
*a = *b;
*b = c;
}
void perm(int a[], int num1, int num2){
int i;
if(num1 > num2){
for(i = 0; i <= num2; i++){
printf("%d ",a[i]);
}
printf("\n");
return ;
}
else{
for(i = num1; i<= num2; i++){
swap(&a[i],&a[num1]);
perm(a, num1+1, num2);
swap(&a[i],&a[num1]);
}
}
}
int main()
{
int a[10];
int i,n;
printf("Enter the number:");
scanf("%d",&n);
for(i = 0; i < n; i++)
a[i] = i+1;
perm(a,0,i-1);
return 0;
}
void swap(int *a, int *b){
int c;
c = *a;
*a = *b;
*b = c;
}
void perm(int a[], int num1, int num2){
int i;
if(num1 > num2){
for(i = 0; i <= num2; i++){
printf("%d ",a[i]);
}
printf("\n");
return ;
}
else{
for(i = num1; i<= num2; i++){
swap(&a[i],&a[num1]);
perm(a, num1+1, num2);
swap(&a[i],&a[num1]);
}
}
}
int main()
{
int a[10];
int i,n;
printf("Enter the number:");
scanf("%d",&n);
for(i = 0; i < n; i++)
a[i] = i+1;
perm(a,0,i-1);
return 0;
}