>> string = '1-6,8-23,25-26'
>> [range(*z) + [z[-1]] for z in [tuple(y) for y in [[int(y) for y in x.split('-')] for x in string.split(',')]]]
>>[[1, 2, 3, 4, 5, 6], [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], [25, 26]]
upd1 или та , на пару символов короче…
>> string = '1-2,3-4,6-9,12-20,22-30'
>> map(lambda x: range(*x) + [x[-1]], map(tuple, [[int(y) for y in x.split('-')] for x in string.split(',')]))
>> [[1, 2], [3, 4], [6, 7, 8, 9], [12, 13, 14, 15, 16, 17, 18, 19, 20], [22, 23, 24, 25, 26, 27, 28, 29, 30]]
и еще чуть короче…
[range(*z) + [z[-1]] for z in map(tuple, [[int(y) for y in x.split('-')] for x in string.split(',')])]