PHP: Jak uzyskać wszystkie możliwe kombinacje macierzy 1D? [duplikować]

Możliwy duplikat:
algorytm, który będzie przyjmował liczby lub słowa i znajdował wszystkie możliwe kombinacje
Kombinacje, dyspozycje i permutacje w PHP

Przeczytałem / wypróbowałem wiele sugerowanych odpowiedzi na SO, z których żaden nie rozwiązuje problemu

$array = array('Alpha', 'Beta', 'Gamma');

Jak uzyskać wszystkie możliwe kombinacje?

Oczekiwany wynik:

array('Alpha',
      'Beta',
      'Gamma',
      'Alpha Beta',
      'Alpha Gamma',
      'Beta Alpha',
      'Beta Gamma',
      'Gamma Alpha',
      'Gamma Beta',
      'Alpha Beta Gamma',
      'Alpha Gamma Beta',
      'Beta Alpha Gamma',
      'Beta Gamma Alpha',
      'Gamma Alpha Beta',
      'Gamma Beta Alpha')

Uwaga: Odpowiedź, której szukam, powinna zawieraćwszystkie kombinacje i wszystkie inne aranżacje. Na przykład:'Alpha beta' i„Beta Alpha” są 2 różne łańcuchy i oba powinny znajdować się w tablicy wyjściowej.

Z góry dziękuję

questionAnswers(1)

yourAnswerToTheQuestion