I am looking for the most efficient and fastest way to generate a list of all prime numbers below a given limit `N`

in Python. I am seeking the help of the Python community to suggest alternative ways to achieve this. I have already tried a few methods, such as the Sieve of Eratosthenes and trial division, but I am still looking for a faster solution that can handle large values of `N`

. Here is an example code snippet that I have used to generate primes using the Sieve of Eratosthenes:

```
def primes_sieve(n):
sieve = [True] * (n+1)
sieve[0] = sieve[1] = False
for i in range(2, int(n**0.5)+1):
if sieve[i]:
sieve[i*i::i] = [False] * ((n-i*i)//i + 1)
return [i for i in range(2, n+1) if sieve[i]]
```

This code works well for smaller values of `N`

, but it can be quite slow for larger values. I would appreciate any suggestions on how to improve the efficiency of this code or any alternative methods to generate prime numbers in Python.