Python – N sized substrings with K distinct characters

When it is required to split ‘N’ sized substrings with ‘K’ distinct characters, it is iterated over, and the ‘set’ method is used to get the different combinations.


Below is a demonstration of the same

my_string = 'Pythonisfun'
print("The string is : ")

my_substring = 2
my_chars = 2
my_result = []

for idx in range(0, len(my_string) - my_substring + 1):
   if (len(set(my_string[idx: idx + my_substring])) == my_chars):
      my_result.append(my_string[idx: idx + my_substring])
print("The resultant string is : ")


The string is :
The resultant string is :
['Py', 'yt', 'th', 'ho', 'on', 'ni', 'is', 'sf', 'fu', 'un']


  • A string is defined and is displayed on the console.

  • A substring, and the characters are defined.

  • An empty list is defined.

  • The string is iterated with respect to the number in substring.

  • If the length of the unique characters in the string is equal to the characters, it is appended to the empty list.

  • This is the result which is displayed on the console.