Both bash and zsh shells support leading zeros in ranges:
$ echo {1..10} 1 2 3 4 5 6 7 8 9 10 $ echo {01..10} 01 02 03 04 05 06 07 08 09 10 $ echo {001..010} 001 002 003 004 005 006 007 008 009 010 $
From the bash manpage section on brace expansion:
Supplied integers may be prefixed with 0 to force each term to have the same width. When either x or y begins with a zero, the shell attempts to force all generated terms to contain the same number of digits, zero-padding where necessary
If you want a comma separated range of numbers, you can do something like:
$ echo {01..10} | tr ' ' ',' 01,02,03,04,05,06,07,08,09,10
The Korn shell does not support the leading zero syntax in brace expansion. However it does support an equally powerful alternative syntax using %0d:
$ echo {1..10} 1 2 3 4 5 6 7 8 9 10 $ echo {01..10%02d} 01 02 03 04 05 06 07 08 09 10 $ echo {01..10%03d} 001 002 003 004 005 006 007 008 009 010 $ echo {01..10%02d} | tr ' ' ',' 01,02,03,04,05,06,07,08,09,10
Finally, you can also use this style of syntax to create a range of leading zero hexadecimals:
$ echo {7..18%02x} 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12