def gen_sweep_cases(cnt, d):
global answer
if cnt == 5:
answer = max(answer, find_max_block(sweep()))
return
for directions in sweep_directions:
if directions == d: continue
sweep_list.append(directions)
gen_sweep_cases(cnt+1, directions)
sweep_list.pop()
return
#...
gen_sweep_cases(0, 'A')
BackTracking을 할 때, 최대한 의미없는 동작의 반복을 줄여나가는 방향으로 최적화해야 한다.