All pastes #500808 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-05-21 19:06 UTC
rendered paste body

print map { "@$_\n" } allperms("a","b","c","d");

exit;

sub allperms() {
    my @l = @_;
    my $n=$#l;
    
    return \@l if ($n<1);

    my @perms = ();

    for (my $i=0;$i<=$n;$i++) {
	my $c = $l[$i];
	my @r = @l[0..($i-1),($i+1)..$n]; 
	
	push @perms, map { [$c,@$_] } allperms(@r);
    }
    return @perms;
}