I expected much worse results, but here are the results of grabbing 900 unique numbers from a list of 1000:
Benchmark: timing 5000 iterations of test_archon, test_jcwren, test_lu
+cs, test_lucsjcwren, test_lucsjcwren2...
test_archon: 259 wallclock secs (242.45 usr + 0.14 sys = 242.59 CPU)
test_jcwren: 213 wallclock secs (202.54 usr + 0.16 sys = 202.70 CPU)
test_lucs: 285 wallclock secs (267.02 usr + 0.27 sys = 267.28 CPU)
test_lucsjcwren: 268 wallclock secs (248.88 usr + 0.24 sys = 249.12 C
+PU)
test_lucsjcwren2: 255 wallclock secs (231.91 usr + 0.21 sys = 232.12
+CPU)
This is where jcwren's algorithm begins to outperform lucs and mine. I'm surprised mine is still about as fast as lucs', though.