use strict;
####
use warnings;
use strict;
my @array = qw(A T C G);
my $word_length = 3;
my $max = ($#array+1)**$word_length;
my @count;
$count[$_] = 0 for 1..$word_length;
my $mainc = 0;
while ($mainc != $max){
print $array[$count[$_]] for 1..$word_length;
$count[1]++;
if ($count[1] == $#array){
$count[1] = 0;
$count[2]++;
}
if ($count[2] == $#array){
$count[2] = 0;
$count[3]++;
}
if ($count[3] == $#array){
$count[3] = 0;
}
print "\n";
$mainc++;
}
####
use warnings;
use strict;
my @array = qw(A T C G);
my $word_length = 4;
my $max = ($#array+1)**$word_length ;
my @count;
$count[$_] = 0 for 1..$word_length;
my $mainc = 0;
for my $mainc (1..$max){
print $array[$count[$_]] for 1..$word_length;
$count[1]++;
for my $counter (1..$word_length) {
if ($count[$counter] == $#array){
$count[$counter] = 0;
$count[$counter + 1]++;
}
}
print "\n";
$mainc++;
}