Permutacja 2-wymiarowego arraylisty

Próbuję utworzyć 2-wymiarową listę tablic, która jest wypełniona każdą możliwą kombinacją, powiedzmy, 1,2,3,4 rekurencyjnie. bez podwajania.

na przykład.
1,0,0
2,0,0
3,0,0
4,0,0
1,2,0
1,3,0
1,4,0
1,2,3
itp...

jak dotąd mam

//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]);

EDYCJA: Również nie próbuję wydrukować wynik Chcę zapisać wynik w 2 wymiarowej tablicy

questionAnswers(3)

yourAnswerToTheQuestion