16 karma · joined March 23, 2010
The only mention of a woman I found was a hostess (!!) in 2.1.
I am assuming you have a slightly different algorithm for these three, since the middle one doesn't seem to match the root color's brightness, and they seem to match saturation differently too. Make a choice between these before you generate, and if you want to eliminate this choice, I would go with the one that tries to match brightness/saturation as much as possible.
This caught my eye because I developed my own algorithm for this a few years ago and applied it to syntax highlighting[1].
https://gist.github.com/gustavla/9499068
Also, how are you timing Python? When I run this on a sample size of 10 using IPython's %timeit, it takes a few microseconds, which is 2 orders of magnitude from what you report.
Implement the algorithm inside a "with nogil" and you will see some nice speed-ups. It won't look pretty, but for certain performance-sensitive code it will be worth it.