Python dictionaries do not maintain an order. You cannot add anything 'after' another key.
Just add the keys you are missing:
d.update((missing, '') for missing in set(range(1, max(d) + 1)).difference(d))
which is a compact way of saying:
for index in range(1, max(d) + 1): # all numbers from 1 to the highest value in the dict
if index not in d: # index is missing
d[index] = '' # add an empty entry
However, it looks more like you need a list instead:
alist = [None, '', '', '', '', '', '2', '', '', '', '6', '7', '', '9', '', '11']
where alist[15] returns '11' just like your d. The None at the start makes it easier to treat this whit 1-based indexing instead of 0-based, you could adjust your code for that otherwise.