A lot of people using sprintf (which is the right thing to do), and I think if you want to do this for a string it’s best to keep in mind the rjust and ljust methods:
"4".rjust(2, '0')
This will make the "4" right justified by ensuring it’s at least 2 characters long and pad it with '0'. ljust does the opposite.