This looks a bit ugly. If this is the only place get_choices is being called, then I think it would be nicer if you would just return a tuple or list or whatever (rather than an iterator).