Bypass recursion limits in python [closed]

I had a large issue where I needed thousands of layers of recursion, but python wouldn't let me. As I'm building this on a windows system, it also proved difficult to try and find the solution. In essence the recursion runs on the stack, and in non UNIX based systems it's hard to mess with the stack.

If you're looking for the most simple solution which works on UNIX:

import sys
sys.setrecursionlimit(20000)


However, as I mentioned, this did not work for me on windows. I needed to come up with solution or switch operating systems.

• I’m voting to close this question because it is a general Python question which is unrelated to Blender. – Ray Mairlot May 17 '20 at 14:14
• Hi. Please don't add 'solved' to the title. Questions are marked as solved when an answer is accepted. However, the point is slightly moot as this doesn't seem to be about Blender, which is what this site is focused on. – Ray Mairlot May 17 '20 at 14:16
• should be closed, didnt realize i was posting to blender and not stackoverflow – Cole May 17 '20 at 18:29

To solve this, I had the wild idea of using multithreading to give me multiple stacks. I didn't honestly know if this would work before I tried it. I hate multithreading generally, but this is a very basic version of that. I'm sure others can improve on it. In my final product I implement multithreading into my backtracking algorithm.

import threading

if x <= 1:
y.append(x)
if z[0] != 1:
new_y = []
z[0] -= 1
new_t.start()
new_t.join()

y += new_y
else:
return

y.append(x)

y = []
z = [50]