#include <stdlib.h>
#include <stdio.h>
void swap(int* a, int* b) { 
  int temp = *a;
  *a = *b;
  *b = temp;
}
void printArray(int *a, int length) { 
  printf("[");
  int i;
  for (i = 0; i < length; i++) { 
    printf("%d",a[i]);
    if (i != length - 1) printf(", ");
  }
  printf("]\n");
}
void combinations(int *array,int n,int i,int *currSol,int length) { 
  if (length == i){
     printArray(currSol,length);
     return;
  }
  int j;
  for (j = 0; j < n; j++) { 
     currSol[i] = array[j];
     combinations(array,n,i+1,currSol,length);
  }
  return;
}
 
int main() { 
int arr[] = {1,2,3};
int sol[4];
combinations(arr,3,0,sol,4);
return 0;
}