I wanted to add to @alecxe's answer but with a comment I can't paste much code. In my application I found it useful to check if the tweet had retweets prior to getting those retweets. This saves a little when it comes to the API quota. I've modified @alecxe's code to fit my needs:
import twitter, json
t = twitter.Api(...)
statuses = t.GetUserTimeline('username', include_rts=True)
for tweet in statuses:
json_tweet = json.loads(str(tweet))
rts = 0
try:
rts = json_tweet['retweet_count']
except:
rts = 0
if rts > 0:
retweets = t.GetRetweets(tweet.GetId())
users = [retweet.GetUser().GetScreenName() for retweet in retweets]
print tweet.GetId(), users