Не очень элегантно или изящно, но вы можете сгенерировать список один раз и сохранить, чтобы использовать его позже:
import urllib, re
url = "http://www.iso.org/iso/support/faqs/faqs_widely_used_standards/widely_used_standards_other/currency_codes/currency_codes_list-1.htm"
print re.findall(r'\<td valign\="top"\>\s+([A-WYZ][A-Z]{2})\s+\</td\>', urllib.urlopen(url).read())
output:
['AFN', 'EUR', 'ALL', 'DZD', 'USD', 'EUR', 'AOA', 'ARS', 'AMD', 'AWG', 'AUD',
...
'UZS', 'VUV', 'EUR', 'VEF', 'VND', 'USD', 'USD', 'MAD', 'YER', 'ZMK', 'ZWL', 'SDR']
Обратите внимание, что вам нужноудалите все после X ... так как они, очевидно, являются зарезервированными именами, что означает, что вы получите одну мошенническую запись (SDR, последний элемент), которую вы можете просто удалить самостоятельно.