How about simply printing a slice of the string? For example:
# Convert timedelta to string:
td_str = str(timedelta(seconds=end-start))
# Starting index of slice is the position of the first number in td_str that isn't '0':
starting_numbers = {'1', '2', '3', '4', '5', '6', '7', '8', '9'}
for character_index, character in enumerate(td_str):
if character in starting_numbers:
start_slice_index = character_index
break
# End of slice is always '.':
end_slice_index = td_str.index(".")
# Make sure that time still displays as '0:xx' when time goes below one minute:
if end_slice_index - start_slice_index <= 3:
start_slice_index = end_slice_index - 4
# Print slice of td_str:
print(td_str[start_slice_index:end_slice_index])
The advantage of this solution would be that if the time happens to go over one hour, the printed time still displays correctly.