I imagine that most modern, fairly-general engines could handle such a project! Indeed, I'd suggest that more important is to find an engine that is congenial to you--one that suits your preferences and method.
As to specifics, Unity and Unreal are both pretty popular, I believe, and I daresay for good reason.
That said, you mention programming and Python, so if you're interested in a more code-centric engine, let me mention the one that is my preferred tool: Panda3D. It's a solid engine, I feel, and has Python bindings (which is how I generally develop with it). The main of the engine itself is implemented in C++, so it performs well.
My main hesitancy in recommending it is that it has no editor-tool, such as Unity and Unreal have. Still, if you don't mind developing primarily with code, then it might be worth looking at! (Website: www.panda3d.org )
That said, there are many engines out there, so I encourage you to try out a few and see what you like! ^_^