Alphabetic strings can be represented using operators: repetition, increment, mapping.
These operators can be combined. For instance:
mapping(increment(1, a, 4), repetition(X, 2))
first generates abcd, and then maps the repetition operation on it to produce aabbccdd.