I was thinking about this recursive thing... thanks for the tip.. will try this 
out.. I hope I can accomplish it.

--- On Sun, 10/25/09, Gabor Szabo <szab...@gmail.com> wrote:

> From: Gabor Szabo <szab...@gmail.com>
> Subject: Re: compact my wordlist generator
> To: "Michael Alipio" <daem0n...@yahoo.com>
> Cc: "begginers perl.org" <beginners@perl.org>
> Date: Sunday, October 25, 2009, 5:06 PM
> 2009/10/25 Michael Alipio <daem0n...@yahoo.com>:
> > Hi,
> >
> >  I'm trying to write a word list generator which can
> >  generate all possible combinations of n characters,
> within n
> >  set of characters.
> >
> >
> >  So far, this is what I have come up. The only input
> is the
> >  lenght of the password the user wants.
> >
> >  my @set = qw(a b c d e f g h i j k l m n o p q r s t
> u v w
> >  x y z);
> >  my $len = scalar @set;
> >  my $char1;
> >  my $char2;
> >  my $char3;
> >  my $char4;
> >  my $char5;
> >  my $char6;
> >  my $char7;
> >  my $char8;
> >
> >  if ($pwlen == 8){
> >
> >  for ($char1=0;$char1<$len;$char1++){
> >    for ($char2=0;$char2<$len;$char2++){
> >      for ($char3=0;$char3<$len;$char3++){
> >
> >      ... upto
> >
> >      for ($char8=0;$char8<$len;$char8++){
> >
> >  print
> >
>  "$set[$char1]$set[$char2]$set[$char3]$set[$char4]$set[$char5]$set[$char6]set[$char7]$set[$char8]\n";
> >
> >  }}}}}}}}
> >
> >  } elseif ( $pwlen == 7){
> >
> >  for ($char2=0;$char2<$len;$char1++){
> >    for ($char3=0;$char3<$len;$char2++){
> >      for ($char4=0;$char4<$len;$char3++){
> >
> >      ... upto
> >
> >      for ($char8=0;$char8<$len;$char8++){
> >
> >  print
> >
>  "$set[$char2]$set[$char3]$set[$char4]$set[$char5]$set[$char6]$set[$char7]set[$char8]\n";
> >
> >  }}}}}}}
> >
> >  }
> >
> >
> >  The problem with the code above is that the length
> of words
> >  is hard coded. Only 8 maximum. I'm looking for ways
> on how
> >  to make my code flexible (length can be whatever the
> user
> >  wants ).
> >
> >  My code is limited to 8 chars maximum length plus if
> I want
> >  to increase it, I have to add another set of for
> loops plus
> >  another variable to use, e.g., $char9, char10.. and
> so
> >  on...
> >
> >
> >  Any idea?
> 
> What about keeping the characters in an array @char
> so you will have
> $char[0], $char[1] etc. a
> 
> nd the loops could be replaced by a recursive function
> call. Something
> like this:
> 
> do_something_for_char($k)
> 
> sub do_something_for_char {
>   my ($k) = @_;
>   return if $k >= $n;
>    do_something_for_char($n+1);
> }
> 
> 
> Gabor
> 





--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to