I have the book "Handbook of Computational Group Theory", by Derek Holt, and in it is a section on finding the transversal of a subgroup. Recall a transversal of a subgroup $H$ of $G$ is a single representative from each of the cosets of $H$ in $G$ (either left or right cosets). Two methods are given to find a transversal without any theoretical guarantees, mentioning at worst case they involve a backtrack search through the elements of $G$.
I'll admit I have not studied the algorithms mentioned thoroughly, as there is a fair amount of prerequisite material regarding strongly generating sets and bases. However, the initial claim of requiring a full backtrack search through $G$ seems unnecessary with an appropriate sized subgroup $H$ if you allow a bit of randomness in your algorithm.
Namely, there are $O(|G : H|)$ different cosets that need a single representative. Randomly sampling from $G$ can be seen as an application of coupon collecting. After $O(|G : H| \log |G : H|)$ many samples, the expectation is that all cosets have been represented. To trim this to a proper transversal, we can keep a list of unique cosets and run the coset test as we sample elements, maintaining only one representative of each unique coset and stopping when $|G : H|$ representatives have been found.
To do this efficiently requires storing the elements of $H$ in a dictionary. With $O(1)$ time lookup, the above algorithm can be completed in $O(|G : H|^2 \log |G : H| + |H|)$ time, though it could possibly be made to be more efficient. In any case, if $H$ is $o(|G|)$ and $\omega(\sqrt{|G|})$, then this algorithm is more efficient than a backtrack search through $G$.
The algorithm is pretty obvious, so I'm wondering why it's not mentioned in the book. Also, if there are any other good sources for transversal computation I would like to hear them. Thanks.