Coset enumeration is usually considered to be one of the fundamental problems in computational group theory.
The original algorithm for coset enumeration was invented by John Arthur Todd and H. S. M. Coxeter.
Various improvements to the original Todd–Coxeter algorithm have been suggested, notably the classical strategies of V. Felsch and HLT (Haselgrove, Leech and Trotter).
The main practical difficulties in producing a coset enumerator are that it is difficult or impossible to predict how much memory or time will be needed to complete the process.
[2] More detailed information on correctness, efficiency, and practical implementation can be found in the books by Sims[3] and Holt et al.[4]