Hm. It might help if you showed all your code, as it's difficult to understand exactly what you're asking for. Do you want some sort of persistence? Then you either need a functor:
class FindAllItemsFunctor
def __init__(self):
self.all_items = []
def __call__(self, site):
# Your find_all_items code using self.all_items instead of all_items
find_all_items = FindAllItemsFunctor()
Or you need to use some functions within functions:
def find_all_items_creater():
all_items = []
def find_all_items(site):
# ...
return find_all_items
find_all_items = find_all_items_creater()
Or you could use a global variable:
all_items = []
def find_all_items(site):
global all_items
# ...
Or even do something clever with the function's parameters:
def find_all_items(site, all_items = [])
# ...