C:\test>p1 [0]{0} Perl> use Algorithm::Combinatorics qw[ permutations ];; [0]{0.00943684577941895} Perl> $iter = permutations( [ reverse 1 .. 9 ] );; [0]{0.000318050384521484} Perl> printf "\r%s\t", join '', @$_ while defined( $_ = $iter->next );; 123456789 [0]{22.5874218940735} Perl> #### [0]{0} Perl>@d = permutations( [ reverse 1 .. 9 ] );; [0]{2.31235218048096} Perl> [0]{0} Perl> printf "\r%s\t", join '', @$_ for @d;; 123456789 [0]{18.9919490814209} Perl> #### [0]{0} Perl> $"=''; $_ = "@$_" for @d;; [0]{1.93835282325745} Perl> #### [0]{} Perl> $d = join "\r", @d;; [0]{0.0442740917205811} Perl> print $d;; 123456789 [0]{4.72821307182312} Perl> #### [0]{0} Perl> $"=''; @d = permutations( [ reverse 1 .. 9 ] ); $_ = "@$_" for @d; $d = join "\r", @d; print $d;; 123456789 [0]{9.26112604141235} Perl> #### [0]{0} Perl> $"=''; print join "\r", map "@$_", permutations( [ reverse 1 .. 9 ] );; 123456789 [0]{10.0599029064178} Perl> [0]{0} Perl> $"=''; print join "\r", map "@$_", permutations( [ reverse 1 .. 9 ] );; 123456789 [0]{10.086268901825} Perl>