@classmethod
def _find_potential_thousand_sep_combos(cls, text):
    """Returns a list of lists where each list consists of the indices of thousand separators which belong to
        the same (potential) number
        Ensures that the number is valid from the left (look back), but no guarantees on what comes after"""
    res = []
    i = 0
    while i < len(text):
        char = text[i]
        if char in cls.THOUSANDS_SEPARATORS:
            if i > 0 and text[i - 1].isnumeric():
                if i > 4 and text[i - 4:i - 1].isnumeric():
                    i += 1
                    continue
                if i < len(text) - 5 and text[i + 1:i + 5].isnumeric():
                    i += 1
                    continue
                if i >= 4 and text[i - 4
                    ] in cls.THOUSANDS_SEPARATORS and not text[i - 4].isspace(
                    ):
                    i += 1
                    continue
                if i < len(text) - 3 and text[i + 1:i + 4].isnumeric():
                    thousand_seps = [i]
                    j = i + 4
                    while j < len(text) - 3 and text[j] == char:
                        if text[j - 3:j].isnumeric() and text[j + 1:j + 4
                            ].isnumeric():
                            thousand_seps.append(j)
                        else:
                            break
                        j += 4
                    last_added = thousand_seps[-1]
                    if len(text) == last_added + 4 or not text[last_added + 4
                        ].isnumeric():
                        if len(text) > last_added + 4 and char.isspace(
                            ) and text[last_added + 4] == char and text[
                            last_added + 5].isnumeric():
                            i += 1
                            continue
                        else:
                            res.append(thousand_seps)
                    i = j - 3
                    continue
        i += 1
    return res
