use Math::Combinatorics; my @aminoacids = qw(Tyrosine Glycine Leucine); print join("\n", map { join " ", @$_ } permute(@aminoacids)),"\n";