Encontre todas as possíveis combinações exclusivas de elementos de um array em PHP [duplicado]

Esta questão já tem uma resposta aqui:

Encontrando os subconjuntos de uma matriz em PHP 3 respostas

Estou ciente de várias perguntas sobre esse tópico (por exemplo,Aqui), mas nenhum deles (pelo menos do que eu encontrei) faz o que eu preciso.

Digamos que eu tenha uma matriz de 3 elementos[1, 2, 3]. Eu preciso encontrar todas as possíveis combinações únicas (excluindo permutações, comoAqui), incluindo os elementos repetidos. Então o resultado deveria ser:

[1]
[2]
[3]
[1, 1]
[1, 2]
[1, 3]
[2, 2]
[2, 3]
[3, 3]
[1, 1, 1]
[1, 1, 2]
[1, 1, 3]
[1, 2, 2]
[1, 2, 3]
[1, 3, 3]
[2, 2, 2]
[2, 2, 3]
[2, 3, 3]
[3, 3, 3]

Excluindo subconjuntos como[3, 2, 1] ou[2, 1, 3], que são a mesma coisa que[1, 2, 3].

Como posso conseguir isso?

questionAnswers(1)

yourAnswerToTheQuestion