I have a background in python and I'm looking for a new language. I am almost only interested in making games.

I have come to 2 languages. C# and Action Script.
C# because Microsoft allows you to make Indie XBLA games programmed in C# ONLY.
Action Script so I can make flash games for new grounds and have a bigger audience.

What do you think is better to learn in the long run?

I'm not really sure. I think C# would be a good language to use in the long run if you plan to become a paid games programmer, but then Flash is great for publicity as you said. I am trying to learn Actionscript 3 right now, but I'm having trouble finding a decent tutorial that's not made in Flash CS, because I use FlashDevelop. If you chose Flash, would you be prepared to buy Flash CS? If not, check out this:

It might be best to start with Flash and acquire an audience, then maybe convert some of your flash games into XBLA games later.

Good luck in whatever you do.

commented: I love you. +1

Let's Put it this way. How long will it take me to learn as3 and make a new grounds acceptable game vs. C# and a XNLA acceptable game?

Well, what kind of games do you want do make? If you want to make shorter quick play style games, then go with Flash. If you want to make longer games with bunches more content, go with C#. If you want super rapidly developed games, go with Flash. If you ever want to be able to make real money with your games, go with C#. Or just learn a bit of both and figure which one you like better =)

Many flash developers are rich, so I would be careful throwing around that type of information, Sodabread.