#!/usr/bin/perl -n permut([split], []); sub permut { my @car = @{ $_[0] }; my @cdr = @{ $_[1] }; unless (@car) { print "@cdr\n"; } else { my(@newcar,@newcdr,$i); foreach $i (0 .. $#car) { @newcar = @car; @newcdr = @cdr; unshift(@newcdr, splice(@newcar, $i, 1)); permut([@newcar], [@newcdr]); } } }