Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from math import factorial
- def loop(k, n, string):
- if k > 0:
- for i in range(n-k):
- loop(k-1, n, string)
- string += reversed(string[-n:-n+k])
- loop(k-1, n, string)
- def find_string(alphabet):
- n = len(alphabet)
- string = list(alphabet)
- loop(n-1, n, string)
- return string
- def check_string(string, alphabet):
- n = len(alphabet)
- perm_list = set()
- for i in range(len(string)-n+1):
- perm = string[i:i+n]
- if sorted(perm) == sorted(alphabet):
- perm_list.add(tuple(perm))
- return len(perm_list) == factorial(n)
- alphabet = [1,2,3]
- string = find_string(alphabet)
- print(string)
- print(check_string(string, alphabet))
- print(check_string([1, 2, 3, 1, 2, 1, 3, 2, 2], alphabet))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement