Eric,
Thanks for taking time and write a good comment. I think I could not communicate my message very well in this article with some professional people like you. If you read my article carefully, you see that I mentioned a few times that I wrote both code in a naive and inefficient way to achieve my goal. My goal was not to compare C++ and Python in their best and most optimum way. As you correctly mentioned there are many better ways to write this Python code that its performance get closer to C++. But my goal was not to compare C++ and Python to achieve THE SAME RESULT!!! My goal was to run both codes through a SAME PROCESS (in this case the same naive algorithm). I don't know if it does make sense for you, but that was my goal.
Also, about C++, you are absolutely right and I am not a professional. I use this language just in cases that I need better memory management.
Anyway, I hope my explanation makes sense for you.
Cheers,
Naser