#! perl -slw use strict; use Time::HiRes qw[ time ]; use Algorithm::Combinatorics qw[ variations_with_repetition ]; my @data = ( 0, 2, 3 ); my $start = time; for my $k ( 1 .. 8 ) { my $iter = variations_with_repetition( \@data, $k ); print "@$_" while $_ = $iter->next; } printf STDERR "Took %f seconds\n", time() - $start;