In how many ways can you split a string into substrings?

I chatted with a friend, talking about the number of ways to split a string into all possible substrings. I like how elegantly this problem can be answered by using some basic mathematics and I sat down and wrote the idea. Here's the Jupyter notebook for it.