Hi Tom,

the answer (at least to your second, refined question) is "Yes! or at least "Yes, soon!" :). I first wanted to post this as a comment, but since it is rather lengthy, I figured it made more sense to give this as an answer, even though it might not be completely satisfying.

There are algorithms that can generate all groups up to a given order; those were used to create the database of small groups. Indeed, I am currently working on a refined set of such algorithms. We plan to use this to extend the database to small groups to orders up to 10,000 (excluding multiples of 1024 and $3^7$ or $3^8$). As part of this, I am working on algorithms that allow constructing all extensions of a group $A$ by another group $B$; but also allow restriction to say all metabelian groups of a given order; etc.

Of course you can just generate all groups up to a given order, and then remove all you don't need, but that's very wasteful. A first refinement is to restrict to generating all groups of odd order, that's already considerably better.

But you can do more: Say a group $G$ has property * if it has odd order, is solvable and has no non-cyclic nilpotent quotients. To find all these groups up to order $n$, it suffices to compute all extensions $E$ (up to isomorphism) of a solvable group $N$ by a cyclic group $Q$, both of odd order, for which $[E,N]=N$.

This is sufficient because the quotients of $E$ by its lower central series are all nilpotent, so must all be cyclic if property * is to hold. But then we can assume $N$ to be the last term of the lower central series (last here means: the term from which on the series becomes stable). And have that $E/N$ is cyclic, and $[E,N]=N$.

The condition that $[E,N]=N$ translates into a restriction on the action of $Q$ on $N/N'$. For it implies (with some handwaving) that $N/N' = [E,N]/N' = [Q,Q] [Q,N/N'] [N/N', N/N'] = [Q,N/N']$ (as $Q$ and $N/N'$ are abelian). This can now be used to effectively cut down on what groups and couplings between them are possible for $Q$ and $N$.

This is indeed a special case of an algorithm we (Bettina Eick and me) are planning to include in our new GAP package. As of now, though, I have not yet turned to working on this algorithm, but it'll happen in the forseeable future.