Посмотрите, что вы об этом думаете. ... это то, что я использую, чтобы делать то, что вы ищете. Это наименьший способ решения проблемы, который я нашел раньше, и его легко заключить в функцию:
import os
name = 'blah.txt'
uniq_name = name
while os.path.isfile(uniq_name):
# if increment variable 'delta' isn't defined, make it 1. Otherwise increment
delta = delta+1 if 'delta' in vars() else 1
uniq_name = f'{os.path.splitext(name)[0]}-{delta}{os.path.splitext(name)[1]}'
# this you don't need - it's just equivalent to a 'touch' command to show
# the output
open(uniq_name, 'a').close()