# import itertools

# def generate_all_permutations(source):
#     """
#     Tworzy listę tupli (root_url, mapping do DB)
#     root_url to URL bez paginacji na końcu!
#     """
#     structure = source.structure  # np. "/f/{offer_type}/{estate_type}/{city}/"
#     params = source.params or {}
#     keys = [k for k in params]
#     values = [list(params[k].keys()) for k in keys]
#     mappings = [params[k] for k in keys]

#     all_urls = []
#     for combination in itertools.product(*values):
#         mapping_for_db = {keys[i]: mappings[i][combination[i]] for i in range(len(keys))}
#         url = structure
#         for i, val in enumerate(combination):
#             url = url.replace("{" + keys[i] + "}", val)
#         # Uwaga: nie doklejamy paginacji!
#         all_urls.append((url, mapping_for_db))
#     return all_urls
