##
C:\test>1198509.pl
0
2
3
0 0
0 2
0 3
2 0
2 2
2 3
3 0
...
3 3 3 3 3 3 2 3
3 3 3 3 3 3 3 0
3 3 3 3 3 3 3 2
3 3 3 3 3 3 3 3
Took 6.103125 seconds
##
##
#! 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;