An example I found: the string of digits 0123456789 occurs at position 17387594880. In this case, it took 11 digits to describe where to find a 10-digit number.
So I think such an algorithm would technically work, but your “start digit” would be so large it would use more data than just sending the raw file data. Not to mention the impossible amount of computing power needed.
Years ago, I used an extension called Tree Style Tab. It’s better than just vertically displaying tabs. New tabs open as children, and you can collapse branches, so things stay organized when you have a ton of tabs.