As I solved this problem using Python 2 some months ago, I can confirm that yes, it is possible!
Actually, I just completed it once again.
I used the same method to optimize than you, and that was enough to get 100%.
However, I remember the first time I tried (a few months ago as I said), it was not efficient enough for some reason.
So I had to find another complementary trick, less obvious, to improve my score. And it worked!
I just made a few test.
With this second improvement, it takes me less than 0.2 seconds to solve the large dataset problem, but it takes me almost 5 seconds otherwise!
So it's up to you, you can find another trick, or optimize the current structure of your code to make it more efficient.