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