I observe that your L's and H's don't move, and that the last two terms are dictated by the first two. This means your pattern can be generated fairly simply with
#!/usr/bin/perl -w
use strict;
for my $h (1 .. 2) {
for my $l (1 .. 2) {
printf "L%dH%dL%dH%d\n", $l, $h, 3-$l, 3-$h;
}
}
Obviously, scaling this up to 500 positions and 10 groups is non-trivial, but should be doable similarly. If you need arbitrary complexity, you'll probably want to generate a work queue rather than having fixed nested for loops.
#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.