Obter todos os resultados possíveis da mistura de matriz

Eu olhei em todos os lugares para isso online, mas não consegui encontrá-lo completamente. (meu PHP e habilidades matemáticas estão deixando o meu para baixo para este ...) Eu tenho uma matriz contendo, por exemplo, três seqüências de caracteres (também poderia ser mais!) (por exemplo: "a", "b", "c"). Agora eu quero fazer uma função que retorne TODAS as possibilidades. Eu olhei em todos os lugares e encontrei algumas funções legais que mudaram o array de todas as maneiras possíveis, mas elas não removeram um valor um por um. Então eles tiveram:

abc acb bac bca táxi cba

O que é bom, mas eu preciso de uma função que o leve ao próximo nível:

abc acb bac bca cabina cba ac ca ab ba bc ba a b c

e isso sem respeito de quantos valores (digamos max 10). Eu tenho lutado com isso a noite toda, alguém pode me tirar da minha miséria e resolver esse enigma para mim, por favor? Ou dê um conselho. obrigado

questionAnswers(3)

yourAnswerToTheQuestion