|Think about Loose Coupling|
First off, getting into arguments about which language is better will get you nowhere. Both languages are popular because both allow people to get things done in the way they find useful. Language wars accomplish nothing.
I ran the Python code and followed along. I see what it's doing, but I can't translate to Perl at the moment. It's basically doing recursion and it seems that when it finishes you'll have all the combinations of DEFAULT_CHAR_SET printed out. It's gonna run a long time.
As for writing better code in Perl, you'd need to define what "better" means. I'm sure the Python programmer wouldn't find it better at all. That's the nature of language wars.