Wszystkie możliwe kombinacje tablicy 2D [duplikat]

To pytanie ma już tutaj odpowiedź:

Generowanie wszystkich możliwych kombinacji 11 odpowiedzi

Chcę wygenerować wszystkie możliwe kombinacje z tablicy 2D [m x n] z wyjątkiem pierwszego elementu każdej tablicy. Ten element oznacza „typ” oznaczający pozostałe elementy. Na przykład, jeśli mam tablicę

shirts[][] = 
{
  {"colour", "red", "blue", "green", "yellow"},
  {"cloth", "cotton", "poly", "silk"},
  {"type", "full", "half"}
};

Pożądanym wyjściem powinno być połączenie wszystkich możliwości koszuli. W powyższym przykładzie

colour red
colour blue
...
cloth silk
type full
type half
colour red cloth cotton
colour red cloth poly
...
colour yellow type half
cloth cotton type full
...
cloth silk type half
colour red cloth cotton type full
...
colour yellow cloth silk type half

Próbowałem czegoś takiego (także wziąłem pomoc z innego Stack OverflowPytanie )

String shirts[][] = 
{
  {"colour", "red", "blue", "green", "yellow"},
  {"cloth", "cotton", "poly", "silk"},
  {"type", "full", "half"}
};

majorCombinations = new int[possibilities][shirts.length];

int currentCombination;
int offset = 1;

for (int i=0; i < shirts.length; i++)
{
    currentCombination = 0;
    while (currentCombination < possibilities)
    {
        for (int j=0; j < shirts[i].length; j++)
        {
            for (int k=0; k < offset; k++)
            {
                if (currentCombination < possibilities)
                {
                    majorCombinations[currentCombination][i] = shirts[i][j];
                    currentCombination++;
                }
            }
        }
    }
    offset *= shirts[i].length;
}

ale daje tylko wartości WSZYSTKICH n kombinacji, tj.

colour cloth type
colour cloth full
...
yellow silk half

Nie bierze pod uwagę mniejszych kombinacji i nie jest nawet ogólna, tj. Dla tablicy [m x n] (nie trzeba naprawiać n). Pomoc w VBA byłaby bardzo mile widziana. Czuję się dobrze z C, Java i C #. Z góry dziękuję :)

Edytować:

To jest inne niżpytanie zadane tutaj. Ten nie jest produktem kartezjańskim, w którymjeden element z każdej tablicy. Wyjście, którego potrzebuję, nie nakłada tego ograniczenia; stąd liczba kombinacji w tym scenariuszu> liczba kombinacji w powiązanym pytaniu. Również pierwsza kolumna jest deskryptorem zawartości i musi towarzyszyć treści.

questionAnswers(3)

yourAnswerToTheQuestion