Itertools Combinações Sem Repetições: Onde rgb é equivalente a rbg etc

Estou tentando usaritertools.combinations para retornar combinações exclusivas. Pesquisei várias perguntas semelhantes, mas não consegui encontrar uma resposta.

Um exemplo:

>>> import itertools
>>> e = ['r','g','b','g']
>>> list(itertools.combinations(e,3))
[('r', 'g', 'b'), ('r', 'g', 'g'), ('r', 'b', 'g'), ('g', 'b', 'g')]

Para meus propósitos, (r, g, b) é idêntico a (r, b, g) e, portanto, gostaria de retornar apenas (rgb), (rgg) e (gbg).

Este é apenas um exemplo ilustrativo e eu gostaria de ignorar todas essas 'duplicatas'. A lista e pode conter até 5 elementos. Cada elemento individual seria r, g ou b. Sempre procurando combinações de 3 elementos dee.

Para ser concreto, são as únicas combinações que desejo chamar de 'válidas': (rrr), (ggg), (bbb), (rgb).

Portanto, talvez a questão se refira a como tratar qualquer variação de (rgb) como igual a (rgb) e, portanto, ignorá-la.

Eu posso usaritertools para conseguir isso ou preciso escrever meu próprio código para soltar os 'duplicados' aqui? Se não houver solução de ferramentas, então posso verificar facilmente se cada uma é uma variação de (rgb), mas isso parece um pouco "não-pitonico".

questionAnswers(3)

yourAnswerToTheQuestion