In the following code, I ve tried to make a recursive function to find substrings of a given string.
i = 0 j = 0 def substrings(string): global i, j if j == len(string) - 1 or len(string) == 0: return [] elif i == len(string): j = j + 1 i = j + 1 return [string[j:i]] + substrings(string) i += 1 return [string[j:i]] + substrings(string) >>> substrings( ceng ) >>> [ c , ce , cen , ceng , e , en , eng , n , ng , g ]
I always tend to use globals while working with recursions, and I don t like it at all. Is there anything I can do not to use globals in this case? I know I can pass the variables to the function as parameters, but it doesn t work for me since the function is supposed to have only one parameter.
Also, if there is a way of doing this without any variable at all, I d like to learn that too.