So you want all n=2·3^(a)·5^(b)·7^(c)·... where a,b,c,...∈{0,1} and n<N.

I'd suggest: Start with S[1]={2}, and iterate with

S[n+1] = S[n] ∪ {p[n]·x : x∈S[n] ∧ p[n]·x < N}

where the p[i] are the primes between 3 and √N inclusive.

IOW, given the set of numbers which are even, square-free, and have only prime factors less than or equal to p[k], multiply each number in the set (in increasing order) by p[k+1], terminating if you reach a value greater than or equal to N. Repeat until you run out of primes.

Initially, the set will double in size at each step: {2}, {2,6}, {2,6,10,30}, {2,6,10,14,30,42,70,210}, etc. Eventually you'll start getting numbers greater than or equal to N and the growth will slow down.