solution_327.py

#!/usr/bin/python3
# ===============================================================
# Recamán's Sequence (0 thru 20)
# ===============================================================

VERBOSE = False

current_seq_value = 0
sequence          = [0]

for mov in range(1,20):

    if VERBOSE:
        print()
        print(f'move distance is     {mov}')
        print(f'current seq value is {current_seq_value}')

    # ---- move down

    next_seq_value = current_seq_value - mov

    # ---- move up?

    if next_seq_value in sequence or next_seq_value < 0:
        next_seq_value = current_seq_value + mov

    if VERBOSE: print(f'next seq value is    {next_seq_value}')

    if next_seq_value in sequence:
        print()
        print('Error:')
        print(f'{next_seq_value} is already in the sequence')
        print('and can only be used once.')
        break

    sequence.append(next_seq_value)

    current_seq_value = next_seq_value

# ---- display sequence

print()
print(f'Sequence: {sequence}')
print()