Rust.
Yes, it clearly has a sharper learning curve than Python. But I think idiomatic Rust feels a lot like a good Python implementation of the same thing would, in ways I can’t quite explain. The borrow checker is certainly something to come to grips with, but it also nudges you to write code the way you should probably be writing it anyway. Don’t pass complex structures around and mutate them everywhere. Don’t return 5 kinds of object from the same function. Don’t go crazy with inheritance vs plain, understandable, testable functions.
Rust just feels right to my Pythonista brain.
For larger projects, Go seems to follow the "Zen of Python" better than Python itself nowadays.
I made those changes while still targeting 2.7: around 2018 I was writing code for 2.7 that was forward-compatible with 3.x, as was common at the time. Since then, f-strings have been worth adding to my toolbox - most of Python 3's other new features haven't been.
Of course having a "batteries included" language where the batteries hurt you is not great.
That said, Nim has great metaprogramming facilities, and one of its similarities with Python is that it requires very very little scaffolding to get your program going. Unlike Java, or C, you don't need to write up classes and functions, it can literally be just a straightforward script written in Nim and it'll compile an executable from there.
It also has great modularity, so you can split up your solution into whatever makes the most sense to you.
So... I think the best way is to try it.
I'm pretty sure that if you like Python you'll like Nim.