All pastes #944018 Raw Edit

permutation by transpositions

public text v1 · immutable
·published 2008-03-15 19:48 UTC
rendered paste body
my $n = 4;
my @v = 0..$n-1;

print "@v\n";
permute($n);

sub permute($) {
    my $k = shift;

    return if $k==1;

    for (my $i=0;$i<$k;$i++) {
	permute($k-1);
	if ($i<$k-1) {
	    my $t = $v[$k-1];
	    $v[$k-1] = $v[$k-2];
	    $v[$k-2] = $t;
	    print "@v\n";
	}
    }
}