我需要做同樣的事情爲itertools.combinations(iterable, r)
in python從列表中得到k個元素的所有可能組合
到目前爲止,我想出了這樣一個功能:
{-| forward application -}
x -: f = f x
infixl 0 -:
{-| combinations 2 "ABCD" = ["AB","AC","AD","BC","BD","CD"] -}
combinations :: Ord a => Int -> [a] -> [[a]]
combinations k l = (sequence . replicate k) l -: map sort -: sort -: nub
-: filter (\l -> (length . nub) l == length l)
是否有一個更優雅和高效解?通過採取n
n
請參閱[此答案](http://stackoverflow.com/a/8626006/98117)。 – hammar
這很好,謝謝。我沒有找到它。 –