some simple math on the loop index would do the trick
desiredindex = desiredstart+(((loopindex-start)/(end-start))*(desiredend-desiredstart))
that means if you loop from 1 to 10 and you really wanted from 1 to 2 in steps of 0.1
di = 1+( ((loopindex-1)/(10-1)) * (2-1) )
di = 1+((loopindex-1)/9)
if you loop from 1 to 10 and really wanted 10 to 1
di = 10+( ((loopindex-1)/(10-1)) * (1-10) )
di = 10+( ((loopindex-1)/9) * (-9) )
at loopindex 1 this is 10+(((1-1)/9)*(-9)) = 10
at loopindex 2 this is 10+(((2-1)/9)*(-9)) = 10+( (1/9) * (-9) ) = 10-1 = 9
at loopindex 10 this is 10+(((10-1)/9)*(-9)) = 10+( -9 ) = 1
PS: Or you could start all your loops from 0 to n-1 where n is the number of steps you want, then use the linear interpolation function that's built into construct to interpolate between the start of the sequence you want to the end. In fact, do that, it's the same only faster and simpler.