Измените fetch
следующим образом:
def fetch(url):
return (url, urllib2.urlopen(url).read())
Вместо очереди, полной строк, каждая из которых содержит результат, вы получаете очередь, полную кортежей, каждый кортеж, содержащий URL, затем результат.
Вы не сможете вернуть очередь, в которой все всегда в одном порядке, потому что многопоточность не является детерминированной в таких вещах. Поэтому лучше всего убедиться, что каждая вещь помечена, чтобы вы могли идентифицировать ее позже.