#include <stdio.h>
void swap(int *a, int *b)
{
int t = *a;
*a = *b;
*b = t;
}
void fun(int arr[], int n, int k)
{
int i;
if (k >= n)
{
for (i = 0; i < n; i++)
printf("%d ", arr[i]);
putchar('\n');
return;
}
for (i = k; i < n; i++)
{
swap(&arr[k], &arr[i]);
fun(arr, n, k + 1);
swap(&arr[k], &arr[i]);
}
}
int main()
{
int arr[] = {1, 2, 3, 4};
fun(arr, 4, 0);
return 0;
}