hpaste

recent | annotate | new

import Data.List (delete)
import qualified Data.Set as Set

wordSet = Set.fromList ["Aarhus", "Aaron", "Ababa", ..."Zulu", "Zulus", "Zurich"]

permutationsOf "" = [""]
permutationsOf word = [letter:rest | letter <- word, rest <- permutationsOf (delete letter word)]

anagrams = [perm | perm <- permutationsOf "documenting ", all inWordSet (words perm)]
    where inWordSet word = word `Set.member` wordSet

main = print anagrams