Zahid888, is the expert at prefix searches...probably has the world's largest prefix database, he can attest to what I am saying to you.
Yes, perhaps I have the world's highest number of prefixes for puzzle66.
And maybe I have conducted the most experiments on prefixes worldwide, whether it be in the form of base58 or hash160.
Through these experiments, I have consistently encountered a 50-50 probability of outcomes.
Sometimes, a few bytes of a private key match, and at other times, they do not match at all.
So, there is no difference between a 'private keys with matched prefixes' and a 'totally random private keys'.
I save addresses with prefixes only as a 'proof of work'; beyond that, these addresses serve no further purpose.
If your objective is solely to locate addresses with matching prefixes, it would be advisable to opt for the vanity search implemented by WanderingPhilosopher, which is based on multi-GPU counting, rather than attempting to enhance speed in Python, which never ever compete with GPU-counting.