I made a program that generate random topology and uses spice simulation to find if it oscillate. The goal was to find some novel LC oscillators. It worked, it found many different oscillators. I let it ran for a while and soon I found out that the simplest possible LC oscillator has 1 inductor, 2 capacitors, 1 resistor and 1 transistor. I found many different variations of it, I called this class of oscillators "LCCRT oscillator" and it also always had 2 internal nodes so that's not very large search space so I generate all possible combinations and I found out there are exactly 12 distinct LCCRT topologies:
Basically any time cap connects to a rail it can be placed to other rail as well, and any time one rail connects via resistor, the resistor can also be moved to other rail. This creates 12 possible combinations.
Of course it found many different topologies. Some times they were unique, other times they could be simplified into already found oscillator. You can find entire project on github, it is a ngspicejs script:
https://github.com/dvhx/lc-oscillator-finder