Homegrown Pythonic Simple Solution (28 Lines)
IntuitionTake advantage of the static message trailer length per digit range.ApproachUse the ranges for number of available digits in 1-9, 10-99, 100-999, 1000-
# Intuition
<!-- Describe your first thoughts on how to solve this problem. -->

Take advantage of the static message trailer length per digit range.

# Approach
<!-- Describe your approach to solving the problem. -->

Use the ranges for number of available digits in 1-9, 10-99, 100-999, 1000-9999, etc to find the right order of packets and then backfill the trailer

# Complexity
- Time complexity:
<!-- Add your time complexity here, e.g. $$O(n)$$ -->
O(n * log(n))

- Space complexity:
<!-- Add your space complexity here, e.g. $$O(n)$$ -->
O(n)

# Code
```python3 []
class Solution:
    def splitMessage(self, message: str, limit: int) -> List[str]:
        def gen(b, message):
            a = 1
            B = len(str(b))
            out = []
            while message:
                A = len(str(a))
                if a > b:
                    return ([], False)
                overhead = 3 + A + B
                N = limit - overhead
                frag = message[0:N]
                message = message[N:]
                out.append(frag)
                a += 1
            a -= 1
            for i in range(a, 0, -1):
                out[i - 1] = out[i - 1] + f'<{i}/{a}>'
            return (out, True)

        base = 1
        test, ok = gen(base ** 10 - 1, message)
        while not ok:
            base *= 10
            if 3 + 1 + 2 * len(str(base - 1)) > limit:
                return []
            test, ok = gen(base - 1, message)

        return test

```
['String', 'Python3']