Hướng dẫn print all anagrams of a string in python - in tất cả các ký tự đảo ngữ của một chuỗi trong python

Chỉ cần lưu ý, câu trả lời của @Sloth cho kết quả hơi bất ngờ nếu chuỗi chứa nhiều hơn một phiên bản của một chữ cái - hoán vị trùng lặp:

["".join(perm) for perm in itertools.permutations('aabc')]

Kết quả trong:

['aabc',
 'aacb',
 'abac',
 'abca',
 'acab',
 'acba',
 'aabc',
 'aacb',
 'abac',
 'abca',
 'acab',
 'acba',
 'baac',
 'baca',
 'baac',
 'baca',
 'bcaa',
 'bcaa',
 'caab',
 'caba',
 'caab',
 'caba',
 'cbaa',
 'cbaa']

Nếu đây không phải là kết quả mong muốn, sử dụng 'Set' sẽ loại bỏ các DUP. Mặc dù nếu bạn muốn một danh sách, bạn sẽ cần phải phân biệt (cũng 'SET' không duy trì thứ tự, vì vậy hãy sử dụng 'Sắp xếp'):

sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))

Kết quả trong:

['aabc',
 'aacb',
 'abac',
 'abca',
 'acab',
 'acba',
 'baac',
 'baca',
 'bcaa',
 'caab',
 'caba',
 'cbaa']

Xem thảo luận

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

    Cải thiện bài viết

    Lưu bài viết

    Đọc

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'

    Bàn luận

    • Cho một mảng các từ, in tất cả các đảo chữ cùng nhau? Ví dụ:
    • Vấn đề này có giải pháp hiện tại Vui lòng tham khảo ANAGrams và được cung cấp một chuỗi các từ, in tất cả các liên kết theo từng liên kết. Chúng tôi sẽ giải quyết vấn đề này trong Python bằng cách sử dụng các cấu trúc dữ liệu danh sách và từ điển. Cách tiếp cận rất đơn giản:Key and original value as Value of corresponding key. Check if key is not present in dictionary that means it is occurring first time, so map a empty list to Key and append value in it, if key is already present then simple append the value.
    • Danh sách các chuỗi.

    Implementation:

    Python3

    Sắp xếp từng chuỗi theo thứ tự tăng dần và coi giá trị được sắp xếp này là giá trị chính và giá trị ban đầu là giá trị của khóa tương ứng. Kiểm tra xem khóa không có trong từ điển có nghĩa là nó đang xảy ra lần đầu tiên, vì vậy hãy ánh xạ một danh sách trống vào khóa và tăng giá trị trong đó, nếu khóa đã có thì đơn giản hãy nối thêm giá trị.

    Bây giờ mỗi khóa sẽ chứa danh sách các chuỗi là ANAGRAM cùng nhau.

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    6
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    7
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    8
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    9

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    1
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    2
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    3

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0____25
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    6
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    7
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    8
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    9

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    1
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    4

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    6
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    9

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    1
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    3
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    4
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    5

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    1
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    4

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    7
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    1
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    7
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    1
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    1

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    1
    cat tac act dog god 
    05022
    cat tac act dog god 
    2

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    cat tac act dog god 
    7
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    2
    cat tac act dog god 
    9

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0____25
    "cat", "dog", "tac", "god", "act"
    2
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    7
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    1
    "cat", "dog", "tac", "god", "act"
    5

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    cat tac act dog god 
    7
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    2
    cat tac act dog god 
    7
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    0

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    6
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    7

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    7
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    9
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    222222
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    2
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    9

    Các

    cat tac act dog god 

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    9
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    00
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    8
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    02Shashank Mishra (Gullu). If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to . See your article appearing on the GeeksforGeeks main page and help other Geeks.


    Đưa ra một loạt các từ, in tất cả các đảo chữ cùng nhau. Ví dụ, nếu mảng đã cho là {Cat Cat ,, Dog Dog ,,

    Một phương pháp đơn giản là tạo bảng băm. Tính giá trị băm của mỗi từ theo cách mà tất cả các cách đảo có cùng giá trị băm. Xả bảng băm với các giá trị băm này. Cuối cùng, in những từ đó cùng với các giá trị băm giống nhau. Một cơ chế băm đơn giản có thể là tổng modulo của tất cả các ký tự. Với tổng số modulo, hai từ không phải anagram có thể có cùng giá trị băm. Điều này có thể được xử lý bằng cách khớp các ký tự riêng lẻ.simple method is to create a Hash Table. Calculate the hash value of each word in such a way that all anagrams have the same hash value. Populate the Hash Table with these hash values. Finally, print those words together with the same hash values. A simple hashing mechanism can be modulo sum of all characters. With modulo sum, two non-anagram words may have the same hash value. This can be handled by matching individual characters.

    Sau đây là một phương pháp khác để in tất cả các đảo chữ cùng nhau. Lấy hai mảng phụ trợ, mảng chỉ mục và mảng từ. Duyệt các mảng từ với chuỗi từ đã cho. Sắp xếp từng từ riêng lẻ của mảng từ. Cuối cùng, sắp xếp mảng từ và theo dõi các chỉ số tương ứng. Sau khi phân loại, tất cả các cách phân cụm cùng nhau. Sử dụng mảng chỉ mục để in các chuỗi từ mảng chuỗi ban đầu.another method to print all anagrams together. Take two auxiliary arrays, index array, and word array. Populate the word array with the given sequence of words. Sort each individual word of the word array. Finally, sort the word array and keep track of the corresponding indices. After sorting, all the anagrams cluster together. Use the index array to print the strings from the original array of strings.

    Hãy cho chúng tôi hiểu các bước với chuỗi từ đầu vào sau: & nbsp;

    "cat", "dog", "tac", "god", "act"

    1) Tạo hai chỉ mục mảng phụ trợ [] và các từ []. Sao chép tất cả các từ đã cho vào các từ [] và lưu trữ các chỉ mục gốc trong index [] & nbsp; Create two auxiliary arrays index[] and words[]. Copy all given words to words[] and store the original indexes in index[] 

    index[]:  0   1   2   3   4
    words[]: cat dog tac god act

    2) Sắp xếp các từ riêng lẻ theo từ []. Mảng chỉ mục không thay đổi. Sort individual words in words[]. Index array doesn’t change.

    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act

    3) Sắp xếp mảng từ. So sánh các từ riêng lẻ bằng cách sử dụng strcmp () để sắp xếp Sort the words array. Compare individual words using strcmp() to sort

    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo

    4) Tất cả các đảo chữ đến với nhau. Nhưng các từ được thay đổi trong mảng từ. Để in các từ gốc, lấy chỉ mục từ mảng chỉ mục và sử dụng nó trong mảng gốc. Chúng tôi nhận được & nbsp; All anagrams come together. But words are changed in the words array. To print the original words, take the index from the index array and use it in the original array. We get 

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    0

    Sau đây là việc triển khai thuật toán trên. Trong chương trình sau đây, một mảng cấu trúc, Word Word được sử dụng để lưu trữ cả mảng chỉ mục và từ. Dupray là một cấu trúc khác lưu trữ một mảng cấu trúc của Word Word. & NBSP;

    C++

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    03

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    04

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    05
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    06
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    07

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    08
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    09

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    10
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    9

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    14

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    17

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    18

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    08
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    20

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    10
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    9

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    24

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    27

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    18

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    29
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    31
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    33

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    36
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    37
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    38

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    40

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    42

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    44
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    37
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    46
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    47
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    48

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    51

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    5
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    54

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    56

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    58

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    44
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    37
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    63
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    64
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    65

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    67
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    68

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    6
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    73

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    76
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    77
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    79
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    77
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78__

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    6
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    86
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    88
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13__

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    93
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    77
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    79
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    77
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78__

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    02

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    04

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    6
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    07
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    08

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    11
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    13
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    33

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    18

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    51

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    5
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    54

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    26
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    27

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    28
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    64
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    30
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    47
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    32
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    34

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    28
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    36

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    44
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    37
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    63
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    64
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    65

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    42
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    43

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    5
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    54

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    48
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    49
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    50

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    44
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    37
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    63
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    64
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    65

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    6
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    73

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    76
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    77
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    79
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    77
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78__

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    76

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    6
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    86
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    88
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13__

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc', 'aacb', 'abac', 'abca', 'acab', 'acba', 'aabc', 'aacb', 'abac', 'abca', 'acab', 'acba', 'baac', 'baca', 'baac', 'baca', 'bcaa', 'bcaa', 'caab', 'caba', 'caab', 'caba', 'cbaa', 'cbaa'] 70

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    81

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    82

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    04

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    93
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    77
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    79
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    77
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78__

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    14

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    17

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    18

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    08
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    20

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    27

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    27

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    18

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    29
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    31
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    33

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    36
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    37
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    38

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    42

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    40

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    25
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    84
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    27
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    16
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    32

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    31
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    47
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    32
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    84
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    35

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    51

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    5
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    54

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    56

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    58

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    13
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    49
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    16
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    32
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    64
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    53

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    67
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    68

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    6
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    73

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    76
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    77
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    79
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    77
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78__

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    6
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    86
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    88
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13__

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    93
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    77
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    79
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    77
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78__

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    84
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    91
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    84
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    93

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    84
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    96
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    84
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    98

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    6
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    07
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    08

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    11
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    13
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    33

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    84
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    11

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    15

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    51

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    5
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    54

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    26
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    27

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    6
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    73

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    28
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    36

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    26
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    39
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    47
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    41

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    42
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    43

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    5
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    54

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    45
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    32
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    47
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    48

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    6
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    73

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    76
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    77
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    79
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    77
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78__

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    6
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    86
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    88
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13__

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    76

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    93
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    77
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    79
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    77
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78__

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")])) 0sorted(set(["".join(perm) for perm in itertools.permutations("aabc")])) 84 ['aabc', 'aacb', 'abac', 'abca', 'acab', 'acba', 'baac', 'baca', 'bcaa', 'caab', 'caba', 'cbaa'] 91sorted(set(["".join(perm) for perm in itertools.permutations("aabc")])) 84 ['aabc', 'aacb', 'abac', 'abca', 'acab', 'acba', 'baac', 'baca', 'bcaa', 'caab', 'caba', 'cbaa'] 93

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    84
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    96
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    84
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    98

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    6
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    07
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    08

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    11
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    13
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    33

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    84
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    11

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    91

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    5
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    24

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    28
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    64
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    30
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    47
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    32
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    34

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    cat tac act dog god 
    02
    cat tac act dog god 
    03

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    cat tac act dog god 
    02
    cat tac act dog god 
    06

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    53

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    cat tac act dog god 
    16

    Các

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    70
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    47
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    7272147
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    74

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    cat tac act dog god 
    02
    cat tac act dog god 
    29

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    6
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    79

    Java

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    79
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    80

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    79
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    82

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    10
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    08
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    85

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    87
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    08
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    09

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    17

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    96
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    98

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    87
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    08
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    20

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    27

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    10
    cat tac act dog god 
    222
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    33

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    cat tac act dog god 
    31
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    37
    cat tac act dog god 
    33

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13
    cat tac act dog god 
    94

    cat tac act dog god 
    42
    cat tac act dog god 
    96

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    cat tac act dog god 
    98

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    51

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    5
    cat tac act dog god 
    39
    cat tac act dog god 
    40
    cat tac act dog god 
    41

    cat tac act dog god 
    42
    cat tac act dog god 
    43
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    37
    cat tac act dog god 
    45

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    87
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    08

    cat tac act dog god 
    42
    "cat", "dog", "tac", "god", "act"
    17
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    49
    "cat", "dog", "tac", "god", "act"
    19

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    10
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    cat tac act dog god 
    61

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    "cat", "dog", "tac", "god", "act"
    30

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    6
    cat tac act dog god 
    66

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    87
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78
    cat tac act dog god 
    74

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    76

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    cat tac act dog god 75['aabc', 'aacb', 'abac', 'abca', 'acab', 'acba', 'aabc', 'aacb', 'abac', 'abca', 'acab', 'acba', 'baac', 'baca', 'baac', 'baca', 'bcaa', 'bcaa', 'caab', 'caba', 'caab', 'caba', 'cbaa', 'cbaa'] 16 ['aabc', 'aacb', 'abac', 'abca', 'acab', 'acba', 'aabc', 'aacb', 'abac', 'abca', 'acab', 'acba', 'baac', 'baca', 'baac', 'baca', 'bcaa', 'bcaa', 'caab', 'caba', 'caab', 'caba', 'cbaa', 'cbaa'] 33

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    cat tac act dog god 
    81
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    37
    cat tac act dog god 
    83

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    51

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0____25
    cat tac act dog god 
    39
    cat tac act dog god 
    40
    cat tac act dog god 
    41

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    "cat", "dog", "tac", "god", "act"
    00
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    37
    "cat", "dog", "tac", "god", "act"
    02

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    "cat", "dog", "tac", "god", "act"
    06
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    37
    "cat", "dog", "tac", "god", "act"
    08

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0____25
    cat tac act dog god 
    39
    cat tac act dog god 
    40
    "cat", "dog", "tac", "god", "act"
    13

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    "cat", "dog", "tac", "god", "act"
    15

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    "cat", "dog", "tac", "god", "act"
    83

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    10
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    87
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78
    "cat", "dog", "tac", "god", "act"
    26

    Các

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    "cat", "dog", "tac", "god", "act"
    45

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    "cat", "dog", "tac", "god", "act"
    15

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    10
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    87
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78
    "cat", "dog", "tac", "god", "act"
    26

    Các

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    "cat", "dog", "tac", "god", "act"
    45

    Python

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    08
    "cat", "dog", "tac", "god", "act"
    522____653
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    9

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    6
    "cat", "dog", "tac", "god", "act"
    57
    "cat", "dog", "tac", "god", "act"
    58
    "cat", "dog", "tac", "god", "act"
    59

    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    38

    Output:  

    cat tac act dog god 

    Độ phức tạp về thời gian: Hãy có các từ n và mỗi từ có tối đa các ký tự m. Giới hạn trên là O (NMLOGM + MNLOGN). & NBSP; Bước 2 mất thời gian O (NMLOGM). Sắp xếp một từ mất tối đa O (MLOGM) thời gian. Vì vậy, việc sắp xếp các từ N mất thời gian o (nmlogm). Bước 3 Take O (mnLogn) Sắp xếp mảng từ có so sánh nlogn. Một so sánh có thể mất tối đa thời gian O (M). Vì vậy, thời gian để sắp xếp một mảng các từ sẽ là o (mnlogn). & Nbsp; Let there be N-words and each word has a maximum of M characters. The upper bound is O(NMLogM + MNLogN). 
    Step 2 takes O(NMLogM) time. Sorting a word takes maximum O(MLogM) time. So sorting N-words takes O(NMLogM) time. step 3 takes O(MNLogN) Sorting array of words takes NLogN comparisons. A comparison may take maximum O(M) time. So time to sort an array of words will be O(MNLogN).
     

    Sử dụng vectơ của cặp: :

    Vấn đề có thể dễ dàng được giải quyết với việc sử dụng một vectơ của các cặp. Cặp sẽ là của chuỗi và int. Chuỗi sẽ yêu cầu lưu trữ chuỗi đầu vào và INT sẽ yêu cầu lưu trữ các chỉ mục tương ứng của chúng. & NBSP;

    Dưới đây là việc thực hiện phương pháp trên:

    C++

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    03

    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    40

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    05
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    06
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    07

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    45

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    47
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    49

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    51
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    33

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0____25
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    32
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    59

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    61

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    66

    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    67
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    33

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    47
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    74

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    76

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    45

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    80

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    82

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    51

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    5
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    54

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    90

    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    91
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    92

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    96

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    5
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    24

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    01
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    49
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    50

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    53

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    09

    Các

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    23

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    6
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    79

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    Đầu ra

    cat tac act dog god 

    Độ phức tạp về thời gian: & nbsp;

    Đặt từ n và mỗi từ có tối đa các ký tự m.

    & nbsp; o (nmlogm + mnlogn). & nbsp;

    Sử dụng Hashmaphere, trước tiên chúng tôi sắp xếp từng từ, sử dụng từ được sắp xếp làm khóa và sau đó đặt một từ gốc trên bản đồ. Giá trị của bản đồ sẽ là một danh sách chứa tất cả các từ có cùng một từ sau khi sắp xếp. & Nbsp; Cuối cùng, chúng tôi sẽ in tất cả các giá trị từ hashmap nơi kích thước của các giá trị sẽ lớn hơn 1.
    Here, we first sort each word, use the sorted word as a key and then put an original word on a map. The value of the map will be a list containing all the words which have the same word after sorting. 
    Lastly, we will print all values from the hashmap where the size of values will be greater than 1.

    C++

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    03

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    05
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    06
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    07

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    45

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    38

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0____25
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    32
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    59

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    45

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    66

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    67
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    51

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    53

    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    67
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    33

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    47
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    74

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    64

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    51

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    71

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    5
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    54

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    78

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    80

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    82

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    88

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    5
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    24

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    93

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    53

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    98
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    99
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    50

    Các

    cat tac act dog god 
    42
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    07
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    08
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    50

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    13

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    98
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    16
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    50

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    53

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    Các

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    6
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    79

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    46

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    6
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    79

    Đầu ra

    Độ phức tạp về thời gian: & nbsp;

    Đặt từ n và mỗi từ có tối đa các ký tự m.

    & nbsp; o (nmlogm + mnlogn). & nbsp;

    Sử dụng Hashmaphere, trước tiên chúng tôi sắp xếp từng từ, sử dụng từ được sắp xếp làm khóa và sau đó đặt một từ gốc trên bản đồ. Giá trị của bản đồ sẽ là một danh sách chứa tất cả các từ có cùng một từ sau khi sắp xếp. & Nbsp; Cuối cùng, chúng tôi sẽ in tất cả các giá trị từ hashmap nơi kích thước của các giá trị sẽ lớn hơn 1.

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    64

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    33
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    33

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    48

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    77

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    80

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    82

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    555____59
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    50

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0____25
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    32
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    62

    cat tac act dog god 
    42
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    91

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    7
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    69

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    6
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    5
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    91

    cat tac act dog god 
    42
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    002

    cat tac act dog god 
    42
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    004

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    7
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    96

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    013

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    5
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    32
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    05

    cat tac act dog god 
    42
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    020

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    Các

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    035

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    70
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    47
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    42
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    47
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    44

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    049

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    Python3

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    053
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    054
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    79
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    056

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    6
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    058

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    060
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    062
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    063
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    064

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0____25
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    15
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    7
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    069

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    071
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    4
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    073

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0____25
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    076
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    7
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    078

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    9
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    32
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    49
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    083

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    7
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    9
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    222222
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    2
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    9

    Các

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    105

    C#

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    05
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    107

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    05
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    109

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    08
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    85

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    57
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    87
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    116

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    120

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    44
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    37
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    124

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0____25
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    32
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    129

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    77

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    134

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    136

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    84
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    37
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    86

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    7
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    143

    cat tac act dog god 
    42
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    145

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    6
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    cat tac act dog god 
    42
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    98
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    37
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    154

    cat tac act dog god 
    42
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    156

    cat tac act dog god 
    42
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    158

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    164
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    37
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    154

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    168
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    169
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    7

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    171
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    172

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    176

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    181

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    168
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    169
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    7

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    171
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    172

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    191

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    7
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    194

    cat tac act dog god 
    42
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    196
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    99
    "cat", "dog", "tac", "god", "act"
    19

    cat tac act dog god 
    42
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    201

    cat tac act dog god 
    42
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    168
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    204
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    7
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    206

    cat tac act dog god 
    42
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    171
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    210

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    171
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    7
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    213

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    214
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    196
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    08
    "cat", "dog", "tac", "god", "act"
    19

    cat tac act dog god 
    42
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    cat tac act dog god 
    42
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    196
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    16
    "cat", "dog", "tac", "god", "act"
    19

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    10
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    87
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    234

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    238

    Các

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    049

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    Đầu ra

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    3

    Độ phức tạp về thời gian: & nbsp; o (m+n). & Nbsp; :  O(M+N). 

    Không gian phụ trợ: O (M x N). & NBSP;O(M x N). 

    Đầu ra: & nbsp;

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    4

    Hashmap với giải pháp O (NM) Trong cách tiếp cận trước đó, chúng tôi đã sắp xếp từng chuỗi để duy trì một khóa tương tự, nhưng chi phí thêm thời gian trong phương pháp này sẽ tận dụng lợi thế của một hashmap khác để duy trì tần số của các ký tự sẽ tạo ra hàm băm giống nhau cho chuỗi khác nhau có cùng tần số của ký tự.ere, chúng ta sẽ lấy HashMap, hashmap bên trong sẽ đếm tần số của các ký tự của mỗi chuỗi và hashmap bên ngoài sẽ kiểm tra xem có phải có băm hay không nếu có thì nó sẽ Thêm chuỗi đó vào danh sách tương ứng. & NBSP;
    In the previous approach, we were sorting every string in order to maintain a similar key, but that cost extra time in this approach will take the advantage of another hashmap to maintain the frequency of the characters which will generate the same hash function for different string having same frequency of characters.
    Here, we will take HashMap, the inner hashmap will count the frequency of the characters of each string and the outer HashMap will check whether that hashmap is present or not if present then it will add that string to the corresponding list. 

    C++

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    03

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    05
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    06
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    07

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    261

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    264
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    9
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    268

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    5
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    271

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    275
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    13
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    9
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    279

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    281

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0____25
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    32
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    286

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    290

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    294 ​​
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    295

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    7
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    298

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    302

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    6

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    310

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    312

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    318

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    5
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    32
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    294 ​​
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    323

    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    91
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    325

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    329

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    5
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    32
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    336

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    42
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    98
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    99
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    50

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0____25
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    32
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    347

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    351
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    08
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    50

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    42
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    98
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    16
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    50

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    53

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    367
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    58
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    9
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    60
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    9
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    372
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    373

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    374
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    64
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    9
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    377
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    18

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    380

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    6
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    79

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    Java

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    79
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    386

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    79
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    388

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    10
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    08
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    55

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    57
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    87
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    395

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    397

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    399

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    403

    cat tac act dog god 
    42
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    405

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    407
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    37
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    403

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    410
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    411

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0____25
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    414

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    416

    cat tac act dog god 
    42
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    418
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    37
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    420

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    5
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    32
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    73
    cat tac act dog god 
    40
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    427

    cat tac act dog god 
    42
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    7
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    430

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    171
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    16
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    433

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    171
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    435

    cat tac act dog god 
    42
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    cat tac act dog god 
    42
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    6
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    171
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    442
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    017
    "cat", "dog", "tac", "god", "act"
    19

    cat tac act dog god 
    42
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    7
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    451

    cat tac act dog god 
    42
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    453

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    6
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    cat tac act dog god 
    42
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    458

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    171
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    460
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    37
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    462

    cat tac act dog god 
    42
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    464

    cat tac act dog god 
    42
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    466

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    395

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    474
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    37
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    000

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0____25
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    479

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    480
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    481

    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    483

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0____76
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    486

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    10
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    87
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    78
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    031

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    34

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    497
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    37
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    000

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    501
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    58
    "cat", "dog", "tac", "god", "act"
    19

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    501
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    60
    "cat", "dog", "tac", "god", "act"
    19

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    501
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    372
    "cat", "dog", "tac", "god", "act"
    19

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    501
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    64
    "cat", "dog", "tac", "god", "act"
    19

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    501
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    377 ____619

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    521

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    70

    Python3

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    053
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    054
    Input : arr = ['cat', 'dog', 'tac', 'god', 'act']
    Output : 'cat tac act dog god'
    79
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    528

    Các

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    28
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    66
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    9
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    547
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    9
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    549
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    9
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    551
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    9
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    553
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    9
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    555
    index[]:   0    1    2    3    4
    words[]:  act  dgo  act  dgo  act
    9
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    557
    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    7

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    6
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    560
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    063
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    562
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    563
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    564
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    063____
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    9

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    568
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    2
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    062
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    063
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    064

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0____25
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    15
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    7
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    069

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'bcaa',
     'caab',
     'caba',
     'cbaa']
    
    0
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    579
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    580
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    32
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    1
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    583

    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    0
    index[]:  0   1   2   3   4
    words[]: cat dog tac god act
    6
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    586
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    5
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    588
    sorted(set(["".join(perm) for perm in itertools.permutations("aabc")]))
    
    7
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    590

    index:     0    2    4    1    3
    words[]:  act  act  act  dgo  dgo
    9
    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    592

    Đầu ra

    ['aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'aabc',
     'aacb',
     'abac',
     'abca',
     'acab',
     'acba',
     'baac',
     'baca',
     'baac',
     'baca',
     'bcaa',
     'bcaa',
     'caab',
     'caba',
     'caab',
     'caba',
     'cbaa',
     'cbaa']
    
    5

    Độ phức tạp về thời gian: Hãy có các từ n và mỗi từ có tối đa các ký tự m. Giới hạn trên là o (nm). & Nbsp; độ phức tạp không gian: Đặt từ n và mỗi từ có các ký tự m tối đa, do đó tối đa. Không gian lưu trữ cho mỗi từ với mức tối đa. Các ký tự m sẽ là o (m), do đó đối với các từ tối đa, nó sẽ là o (n*m). Do đó, giới hạn trên là O (nm). Let there be N-words and each word has a maximum of M characters. The upper bound is O(NM). 
    Space Complexity: Let there be N-words and each word has maximum M characters, therefore max. storage space for each word with at max. M characters will be O(M), therefore for max N-words, it will be O(N*M). Therefore, the upper bound is O(NM).

    Bài viết này được đóng góp bởi aarti_rathi & nbsp; và muốn đóng góp, bạn cũng có thể viết một bài viết bằng Write.GeekSforGeeks.org hoặc gửi bài viết của bạn. Xem bài viết của bạn xuất hiện trên trang chính của GeekSforGeek và giúp các chuyên viên máy tính khác. Xin vui lòng viết nhận xét nếu bạn tìm thấy bất cứ điều gì không chính xác hoặc bạn muốn chia sẻ thêm thông tin về chủ đề được thảo luận ở trên.Aarti_Rathi  and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to . See your article appearing on the GeeksforGeeks main page and help other Geeks.
    Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

    Đưa ra một chuỗi các từ, in tất cả các đảo chữ cùng nhau | Đặt 2 & nbsp; vui lòng viết nhận xét nếu bạn tìm thấy bất cứ điều gì không chính xác hoặc bạn muốn chia sẻ thêm thông tin về chủ đề được thảo luận ở trên. & NBSP;
    Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
     


    Làm thế nào để bạn in một đảo chữ của một chuỗi trong Python?

    Thí dụ -..
    def anogram_check (str1, str2):.
    # Chuỗi được sắp xếp và kiểm tra xem cả hai có khớp hay không ..
    if (Sắp xếp (str1) == Sắp xếp (str2)):.
    In ("Cả hai chuỗi là một đảo chữ.").
    In ("Cả hai chuỗi không phải là một đối thủ.").
    String1 = "Python".
    String2 = "ythopn".

    Làm thế nào để bạn tìm thấy ANAGram của một chuỗi?

    Một đảo chữ của một chuỗi là một chuỗi khác chứa cùng một ký tự, chỉ có thứ tự của các ký tự có thể khác nhau.Ví dụ, ABCD, và Dab Dabc là một cách đối phó của nhau.Giải thích: Tất cả các nhân vật của Lắng nghe và và im lặng là như nhau.another string that contains the same characters, only the order of characters can be different. For example, “abcd” and “dabc” are an anagram of each other. Explanation: All characters of “listen” and “silent” are the same.

    Làm thế nào để bạn đếm một đảo chữ cái trong Python?

    Anagram Python Mã chương trình: a = input ("enter chuỗi 1:") b = input ("enter chuỗi 2:") đếm = 0 cho i trong a: for j in b: if i == j: Count = Count+1 nếu Count == Len (A): In ("Chuỗi là ANAGram của nhau.")count=0 for i in a: for j in b: if i==j: count=count+1 if count==len(a): print("Strings are anagram of each other.") else: print("Strings are not anagram of each other.")

    Làm thế nào để bạn tìm thấy đảo chữ của một loạt các chuỗi?

    Một ý tưởng đơn giản để tìm xem tất cả các cặp đảo chữ là chạy hai vòng lồng nhau.Vòng ngoài chọn tất cả các chuỗi từng cái một.Vòng lặp bên trong kiểm tra xem các chuỗi còn lại có phải là phương pháp của chuỗi được chọn bởi vòng ngoài không.run two nested loops. The outer loop picks all strings one by one. The inner loop checks whether remaining strings are anagram of the string picked by outer loop.