Recurrsion and BackTracking
Reference -
https://www.youtube.com/watch?v=-3EwpW5UiVo
Code -
def dfs(hashset,visited, tiles, sb):
hashset.add(sb)
for i in range(len(tiles)):
if not visited[i]:
visited[i] = True
sb += tiles[i]
dfs(hashset, visited, tiles, sb)
visited[i] = False
sb = sb[:-1]
hashset = set()
visited = [False]*len(tiles)
dfs(hashset,visited, tiles, "")
print(len(hashset) - 1)
------------------------------------------------------------------------------
Result : print(len(hashset) - 1)