combinatorics-on-words
Lyndon words, Duval factorization, necklace and bracelet enumeration, and De Bruijn sequences in pure Python.