# P26 - Generate the combinations of k distinct objects chosen from the n elements of a list.

*Author: Ryan Connelly*

# Example

> say c(2, <a b c d e>); ((a b) (a c) (a d) (a e) (b c) (b d) (b e) (c d) (c e) (d e))

Source code: P26-topo.pl

use v6; multi sub c(0, @xs) { return ((),) } multi sub c(Int $n, []) { return () } multi sub c(Int $n, [ $x, *@xs ]) { |map({($x, |@$_)}, c($n - 1, @xs)), |c($n, @xs); } my @combos = c(3, <a b c d e f g h i j k l>); say @combos.elems; say @combos[200..*];