I have a script[1] that generates a pub+private key and checks against a massive file of addresses with BTC[2]. The list of addresses is loaded in memory as a python `set` so checking is O(1), but I feel like optimisations at increasing the rate are futile, since no matter what you're basically rolling the die and hoping RNG lands on your side in your lifetime and your universe of all possible universes.
1. https://github.com/theden/btc-heist
2. https://bitkeys.work/download.php has a weekly updated CSV of all known addresses with nonzero BTC balance