PHP encontrar todas (um pouco) combinações exclusivas de uma matriz

Eu estive olhando para questões de permutação / combinação de matriz PHP o dia todo .. e ainda não consigo entender: /

Se eu tenho uma matriz como:

20 //key being 0    
20 //key being 1    
22 //key being 2    
24 //key being 3

Eu preciso de combinações como:

20, 20, 22 //keys being 0 1 2    
20, 20, 24 //keys being 0 1 3    
20, 22, 24 //keys being 0 2 3
20, 22, 24 //keys being 1 2 3

O código que tenho atualmente me dá:

20, 22, 24

porque não quer repetir 20 ... mas é disso que eu preciso!

Aqui está o código que tenho. é diretamente dePhp recursão para obter todas as possibilidades de seqüências de caracteres

function getCombinations($base,$n){

$baselen = count($base);
if($baselen == 0){
    return;
}
    if($n == 1){
        $return = array();
        foreach($base as $b){
            $return[] = array($b);
        }
        return $return;
    }else{
        //get one level lower combinations
        $oneLevelLower = getCombinations($base,$n-1);

        //for every one level lower combinations add one element to them that the last element of a combination is preceeded by the element which follows it in base array if there is none, does not add
        $newCombs = array();

        foreach($oneLevelLower as $oll){

            $lastEl = $oll[$n-2];
            $found = false;
            foreach($base as  $key => $b){
                if($b == $lastEl){
                    $found = true;
                    continue;
                    //last element found

                }
                if($found == true){
                        //add to combinations with last element
                        if($key < $baselen){

                            $tmp = $oll;
                            $newCombination = array_slice($tmp,0);
                            $newCombination[]=$b;
                            $newCombs[] = array_slice($newCombination,0);
                        }

                }
            }

        }

    }

    return $newCombs;


}

Eu tenho brincado com o($b == $lastEl) linha, sem sorte

===============

Perguntas que eu já examinei, e não são as mesmas OU que criaram um erro de falta de memória !:

Como posso obter todas as permutações no PHP sem duplicatas sequenciais?Permutações - todos os conjuntos possíveis de númerosCombinações, Disposições e Permutações em PHPCombinações de matriz PHPObter todas as permutações de um array PHP?PHP: Como obter todas as combinações possíveis de matriz 1D?Selecione apenas valores de matriz exclusivos desta matrizObter todas as permutações de um array PHP?PHP: Como obter todas as combinações possíveis de matriz 1D?Selecione apenas valores de matriz exclusivos desta matrizComo posso obter todas as permutações no PHP sem duplicatas sequenciais?Algoritmo para retornar todas as combinações de k elementos de nEncontre a (s) soma (s) da (s) combinação (s) no array cuja soma é igual a um determinado númeroCombinações, Disposições e Permutações em PHPCombinações de matriz PHPPhp recursão para obter todas as possibilidades de seqüências de caracteresComo retornar permutações de um array em PHP?Permutações - todos os conjuntos possíveis de númerosProblema de subconjunto-soma em PHP com MySQLEncontre combinações exclusivas de valores de matrizes filtrando quaisquer pares duplicadosEncontrar todas as permutações únicas de uma string sem gerar duplicatasGere todas as permutações exclusivasSoma do subconjunto para exatamente k inteiros?

Eu tentei alguns desses algoritmos com uma matriz de 12 itens e acabei ficando sem memória. No entanto, o algoritmo que estou usando atualmente não me dá um erro de falta de memória .... MAS .. Eu preciso dessas duplicatas!

questionAnswers(6)

yourAnswerToTheQuestion