When cataloguing a collection of genetic strings, we should have an established system by which to organize
them. The standard method is to organize strings as they would appear in a dictionary, so that
"APPLE" precedes "APRON", which in turn comes before "ARMOR".
Problem
Assume that an alphabetA has a predetermined order;
that is, we write the alphabet as a permutationA=(a1,a2,…,ak),
where a1<a2<⋯<ak.
For instance, the English alphabet is organized as (A,B,…,Z).
Given two strings s and t having the same length n,
we say that s precedes t in the lexicographic order (and write s<Lext) if the
first symbol s[j] that doesn't match t[j] satisfies sj<tj in A.
Given: A collection of at most 10 symbols defining an ordered alphabet, and a positive integer n (n≤10).
Return: All strings of length n that can be formed from the alphabet, ordered lexicographically (use the standard order of symbols in the English alphabet).