Python Simple Solution | Iterate over all possible valid combinations | Beats 88%
EDIT: We can add if len(string ) == len(set(string)):  after for string in arr: to save some extra computations by discarding the parts which have duplicate let
EDIT: We can add ```if len(string ) == len(set(string)): ```  after ``` for string in arr:``` to save some extra computations by discarding the parts which have duplicate letters. Thanks for @RezaTalebzadeh for pointing that out!\n\n```\nclass Solution:\n    def maxLength(self, arr: List[str]) -> int:\n        sz, combinedWords, maxLength = len(arr), [\'\'], 0\n        # Iterate over every string present in arr\n        for string in arr:\n            # combinedWords contains all possible combinations of the strings present in arr\n            # combinedWords array is incrementally built upon by adding the current string\n            # in arr to all the present combinations already present in combinedWords\n            for word in combinedWords:\n                # add the present string to present combination\n                resultantWord = word + string\n                # if the combination contains duplicates, discard it\n                if len(resultantWord) != len(set(resultantWord)):\n                    continue\n                # append the new combination in the list of combinations\n                combinedWords.append(resultantWord)\n                # update the maximum length\n                maxLength = max(maxLength, len(resultantWord))\n        return maxLength\n```
['Iterator', 'Python']