In this instance, I'm pretty confident the generator version is just a better phrasing. It's shorter, contains no mutable state to get wrong, is Pythonic, and can instantly be made lazy by replacing the square brackets with round ones.
`[p for p in permutations(numbers) if primePairs(p)]`
`[p for p in permutations(numbers) if primePairs(p)]`