#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;
}
      

