def reverse_recurse(string: str) -> str:
print(f'current word: {string}')
print('========== reached the base case')
last_letter = string[-1] # letter at the end of the string
rest = string[:-1] # the rest of the string except the last letter
print(f'^^^ about to recurse. this is rest: {rest}')
# get the result of reversing every other letter before the current one
recurse_result = reverse_recurse(rest)
print(f"### we're back. this was string function param: {string}")
new_string = last_letter + recurse_result # arrange the last letter in front
print(f'recurse result: >> {recurse_result} <<')
print(f'putting last letter on first: {last_letter}')
result = reverse_recurse('hello') # olleh
print(f'reverse result: {result}')