FWIW, я бы использовал для этого awk
.
$ echo 101222_1_1_ab | awk 'BEGIN {FS = OFS = "_"} {print $1, $2, $4, $3}'
101222_1_ab_1
Но так как вы спрашиваете:
а что делать в питоне?
>>> s = '101222_1_1_ab'
>>> s.split('_')
['101222', '1', '1', 'ab']
>>> l = s.split('_')
>>> l[0], l[1], l[3], l[2]
('101222', '1', 'ab', '1')
>>> '_'.join((l[0], l[1], l[3], l[2]))
'101222_1_ab_1'