Haskell combinações e permutação

Tenho três palavras em uma lista ["a", "b", "c"]. Eu quero encontrar todas as combinações possíveis no conjunto 5,6 etc.

por exemplo, para um conjunto de 5, eu teria

**[ [aaaaa],[aaaab],[aaaac], [aaabc] , ..... ]** etc 3 ^ 5 = 243 combinations

aaaaaa acima será basicamente "a", "a", "a", "a", "a" ....

questionAnswers(4)

yourAnswerToTheQuestion