Many people have published high performance, read-less, Inline Table Valued functions that use Itzik Ben-Gan's wonderful "Virtual Numbers Table" to replace WHILE loops and other forms of RBAR. This one is Jeff Moden's version. 
        2019-08-13 (first published: 2019-08-04)
 7,628 reads
           Inline function generating the set of numbers based on submitted parameters.
        2017-03-09 (first published: 2017-02-16)
 1,971 reads
           An inline table-valued function (iTVF) that will produce a virtual tally table on-the-fly. The function creates a tally table of any size with user-defined lower and upper bounds.
        2014-09-08 (first published: 2013-06-28)
 2,232 reads