The idea is to use sorted() to sort the data you have specifying key lambda function that extracts the numbers after the Dnext_ and inside the brackets using regular expression:
import re
pattern = re.compile('Dnext_(\d+)\[(\d+)\]')
with open('input.txt') as f:
print sorted(f, key=lambda x: map(int, pattern.search(x).groups()))
prints:
Dnext_0[0]
Dnext_0[1]
Dnext_0[11]
Dnext_0[128]
Dnext_1[0]
Dnext_(\d+)\[(\d+)\] regular expression uses capturing groups to extract the number after Dnext_ and the number in the brackets:
>>> import re
>>> pattern = re.compile('Dnext_(\d+)\[(\d+)\]')
>>> pattern.search('Dnext_0[11]').groups()
('0', '11')
map(int, ... ) helps to convert the extract numbers to python integers (see map()):
>>> map(int, pattern.search('Dnext_0[11]').groups())
[0, 11]
Hope that helps.