Assume you have these files:
$ cd test
$ touch file{1..25}.txt
$ ls
file1.txt   file14.txt  file19.txt  file23.txt  file5.txt
file10.txt  file15.txt  file2.txt   file24.txt  file6.txt
file11.txt  file16.txt  file20.txt  file25.txt  file7.txt
file12.txt  file17.txt  file21.txt  file3.txt   file8.txt
file13.txt  file18.txt  file22.txt  file4.txt   file9.txt
You can use glob to match the grand pattern of file[numers].txt:
import glob
import os
import re
os.chdir('/Users/andrew/test')
print glob.glob('file[0-9]*.txt')
# ['file1.txt', 'file10.txt', 'file11.txt', 'file12.txt', 'file13.txt', 'file14.txt', 'file15.txt', 'file16.txt', 'file17.txt', 'file18.txt', 'file19.txt', 'file2.txt', 'file20.txt', 'file21.txt', 'file22.txt', 'file23.txt', 'file24.txt', 'file25.txt', 'file3.txt', 'file4.txt', 'file5.txt', 'file6.txt', 'file7.txt', 'file8.txt', 'file9.txt']
Then use a list comprehension with regex to narrow that list:
def expand(x,lo=0,hi=sys.maxint): 
    return lo<=int(re.search(r'\d+', x).group(0))<=hi
print [e for e in glob.glob('file[0-9]*.txt') if expand(e, 8,12)]
# ['file10.txt', 'file11.txt', 'file12.txt', 'file8.txt', 'file9.txt']
Or use filter:
print filter(lambda x: expand(x, 9, 12), glob.glob('file[0-9]*.txt'))
# ['file10.txt', 'file11.txt', 'file12.txt', 'file9.txt']