The generator expression should be used if you're iterating once over anything. But in case if you want to store and use the generated results, then you're advised to use a list comprehension.
The main reason for choosing among one of these is the performance, so it is advised not to worry about performance you can pick anyone.
return (something for something in get_some_stuff())
print(gen()[:2])# generators don't support indexing
print([5,6] + gen()) # generators can't be added to lists