That is much nicer than my very slow approach, thank you.
But yes, I do need a minimum and a maximum range. Using your code the range for low ‘start’ values would tend to be far greater than the range for higher values.
I tried for a minimum range (between start and end) of 45 and a maximum range of 90. My code is too slow because nothing good is happening whilst it produces and sifts out the useless results.