Перестановка двумерного массива

Я пытаюсь сделать список двухмерного массива, который будет заполнен каждой возможной комбинацией, скажем, 1,2,3,4 рекурсивно. без двойных взлетов.

например.
1,0,0
2,0,0
3,0,0
4,0,0
1,2,0
1,3,0
1,4,0
1,2,3
и т.д...

пока у меня есть

//this gives me all my numbers
for(int i =0;i<arraySize;i++)
index[i] = i;

// and is the part that make the combinations
for(int i = 0;i<arraySize;i++){
   for(int x = 0;x<k;x++)
      combinations.get(i).set(x, index[i]);

РЕДАКТИРОВАТЬ: Также я не пытаюсь распечатать результат, я хочу сохранить результат в 2-мерном массиве

Ответы на вопрос(3)

Ваш ответ на вопрос