数値に3桁ごとのコンマを入れる

import locale
locale.setlocale(locale.LC_NUMERIC, 'ja_JP')
locale.setlocale(locale.LC_MONETARY, 'en_US')

# 2011年日本の人口 & GDP(USドル)
population = 127817277
gdp = 5867200000000

print locale.format('%d', population, True)
print locale.currency(gdp, False, True)
127,817,277
5,867,200,000,000.00

日本/アメリカは3桁コンマ区切りが標準なので、ロケールの設定をそのまま使うのがお手軽です。locale.format、locale.currencyとも第3引数で桁のグループ化(区切り文字の有無)をTrue/Falseで指定します (ちなみにlocale.currencyの第2引数は通貨記号の有無の指定です)。

追記

正規表現を使う場合も、先読みを使う(?=... ?!...)とか、リバースかけて先頭から区切り元に戻すとかいろいろ方法があります。ひとまず先読みを使った方法で。

import re
print re.sub(r'(\d)(?=(\d{3})+(?!\d))', '\\1,', str(gdp))
5,867,200,000,000

なお「後に続く桁数が3の倍数ならコンマを入れる」というやり方ですので、小数点以下が4桁以上あると小数点以下も区切ってしまいます。

追記2

小数点以降は区切らない方法。これでいいのかな?

import re
from decimal import Decimal

d = Decimal('-12345678901234567.89012345')
print re.sub(r'(\d)(?=(\d{3})+(?!\d)[\.$])', r'\1,', str(d))
 -12,345,678,901,234,567.89012345