in reply to Generating lists of strings
Looks like you are counting base 3, but with every digit plus 1, i.e. 0000 becomes 1111 and 2222 becomes 3333
#!/usr/bin/perl use warnings; use strict; my $length=4; my @number= (1) x $length; while (@number) { printnumber(@number); @number= addto(@number); } sub addto { my @number= @_; while (1) { my $carry=1; foreach (@number) { $_+= $carry; $carry=0; if ($_>3) { $_=1; $carry=1; } } @number=() if ($carry==1); return(@number); } } sub printnumber { my @number= @_; print reverse(@number),"\n"; }
Your problem is a bit underspecified in that it is not clear if $length should also be a limit to the digits you use. I assumed not.
|
|---|