![]() |
|
XP is just a number | |
PerlMonks |
How do I permute N elements of a list?by faq_monk (Initiate) |
on Oct 08, 1999 at 00:20 UTC ( [id://618]=perlfaq nodetype: print w/replies, xml ) | Need Help?? |
Current Perl documentation can be found at perldoc.perl.org. Here is our local, out-dated (pre-5.6) version:
Here's a little program that generates all permutations of all the words on each line of input. The algorithm embodied in the
#!/usr/bin/perl -n # tsc-permute: permute each word of input permute([split], []); sub permute { my @items = @{ $_[0] }; my @perms = @{ $_[1] }; unless (@items) { print "@perms\n"; } else { my(@newitems,@newperms,$i); foreach $i (0 .. $#items) { @newitems = @items; @newperms = @perms; unshift(@newperms, splice(@newitems, $i, 1)); permute([@newitems], [@newperms]); } } }
|
|