F# Permutations (translated from Haskell Data.List.permutations)
fsharpcode.blogspot.com