Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # https://forum.gamer.com.tw/C.php?bsn=60292&snA=8226&tnum=1
- def K(perm: str, _iter_layer_count: int = 0) -> list[str]:
- if len(perm) <= 1:
- return [perm]
- r = []
- for i in range(len(perm)):
- _left = perm[:i]
- _right = perm[i+1:]
- _total = _left + _right
- _sublist = K(_total, _iter_layer_count + 1)
- _sublist_print = ','.join(_sublist)
- print(f"{_iter_layer_count: >5} |{_left: >5} |{_right: >6} |{_total: >6} |{_sublist_print: >26} |", end="")
- others = _sublist
- _flag_first = True
- for s in others:
- _current_left = perm[i]
- _current_right = s
- _current_total = _current_left + _current_right
- if _flag_first:
- _flag_first = False
- else:
- print(f"{_iter_layer_count: >5} |{'-': >5} |{'-': >6} |{'-': >6} |{'-': >26} |", end="")
- print(f"{_current_left: >8} |{_current_right: >9} |{_current_total: >9}")
- r = r + [_current_total]
- return r
- p = ' ' * 10
- print(
- f" Iter | Left | Right | Total |{p}Sublist{p}| CurLeft | CurRight | CurTotal ")
- print("-" * 88)
- print(K("1234"))
- # Iter | Left | Right | Total | Sublist | CurLeft | CurRight | CurTotal
- # ----------------------------------------------------------------------------------------
- # 2 | | 4 | 4 | 4 | 3 | 4 | 34
- # 2 | 3 | | 3 | 3 | 4 | 3 | 43
- # 1 | | 34 | 34 | 34,43 | 2 | 34 | 234
- # 1 | - | - | - | - | 2 | 43 | 243
- # 2 | | 4 | 4 | 4 | 2 | 4 | 24
- # 2 | 2 | | 2 | 2 | 4 | 2 | 42
- # 1 | 2 | 4 | 24 | 24,42 | 3 | 24 | 324
- # 1 | - | - | - | - | 3 | 42 | 342
- # 2 | | 3 | 3 | 3 | 2 | 3 | 23
- # 2 | 2 | | 2 | 2 | 3 | 2 | 32
- # 1 | 23 | | 23 | 23,32 | 4 | 23 | 423
- # 1 | - | - | - | - | 4 | 32 | 432
- # 0 | | 234 | 234 | 234,243,324,342,423,432 | 1 | 234 | 1234
- # 0 | - | - | - | - | 1 | 243 | 1243
- # 0 | - | - | - | - | 1 | 324 | 1324
- # 0 | - | - | - | - | 1 | 342 | 1342
- # 0 | - | - | - | - | 1 | 423 | 1423
- # 0 | - | - | - | - | 1 | 432 | 1432
- # 2 | | 4 | 4 | 4 | 3 | 4 | 34
- # 2 | 3 | | 3 | 3 | 4 | 3 | 43
- # 1 | | 34 | 34 | 34,43 | 1 | 34 | 134
- # 1 | - | - | - | - | 1 | 43 | 143
- # 2 | | 4 | 4 | 4 | 1 | 4 | 14
- # 2 | 1 | | 1 | 1 | 4 | 1 | 41
- # 1 | 1 | 4 | 14 | 14,41 | 3 | 14 | 314
- # 1 | - | - | - | - | 3 | 41 | 341
- # 2 | | 3 | 3 | 3 | 1 | 3 | 13
- # 2 | 1 | | 1 | 1 | 3 | 1 | 31
- # 1 | 13 | | 13 | 13,31 | 4 | 13 | 413
- # 1 | - | - | - | - | 4 | 31 | 431
- # 0 | 1 | 34 | 134 | 134,143,314,341,413,431 | 2 | 134 | 2134
- # 0 | - | - | - | - | 2 | 143 | 2143
- # 0 | - | - | - | - | 2 | 314 | 2314
- # 0 | - | - | - | - | 2 | 341 | 2341
- # 0 | - | - | - | - | 2 | 413 | 2413
- # 0 | - | - | - | - | 2 | 431 | 2431
- # 2 | | 4 | 4 | 4 | 2 | 4 | 24
- # 2 | 2 | | 2 | 2 | 4 | 2 | 42
- # 1 | | 24 | 24 | 24,42 | 1 | 24 | 124
- # 1 | - | - | - | - | 1 | 42 | 142
- # 2 | | 4 | 4 | 4 | 1 | 4 | 14
- # 2 | 1 | | 1 | 1 | 4 | 1 | 41
- # 1 | 1 | 4 | 14 | 14,41 | 2 | 14 | 214
- # 1 | - | - | - | - | 2 | 41 | 241
- # 2 | | 2 | 2 | 2 | 1 | 2 | 12
- # 2 | 1 | | 1 | 1 | 2 | 1 | 21
- # 1 | 12 | | 12 | 12,21 | 4 | 12 | 412
- # 1 | - | - | - | - | 4 | 21 | 421
- # 0 | 12 | 4 | 124 | 124,142,214,241,412,421 | 3 | 124 | 3124
- # 0 | - | - | - | - | 3 | 142 | 3142
- # 0 | - | - | - | - | 3 | 214 | 3214
- # 0 | - | - | - | - | 3 | 241 | 3241
- # 0 | - | - | - | - | 3 | 412 | 3412
- # 0 | - | - | - | - | 3 | 421 | 3421
- # 2 | | 3 | 3 | 3 | 2 | 3 | 23
- # 2 | 2 | | 2 | 2 | 3 | 2 | 32
- # 1 | | 23 | 23 | 23,32 | 1 | 23 | 123
- # 1 | - | - | - | - | 1 | 32 | 132
- # 2 | | 3 | 3 | 3 | 1 | 3 | 13
- # 2 | 1 | | 1 | 1 | 3 | 1 | 31
- # 1 | 1 | 3 | 13 | 13,31 | 2 | 13 | 213
- # 1 | - | - | - | - | 2 | 31 | 231
- # 2 | | 2 | 2 | 2 | 1 | 2 | 12
- # 2 | 1 | | 1 | 1 | 2 | 1 | 21
- # 1 | 12 | | 12 | 12,21 | 3 | 12 | 312
- # 1 | - | - | - | - | 3 | 21 | 321
- # 0 | 123 | | 123 | 123,132,213,231,312,321 | 4 | 123 | 4123
- # 0 | - | - | - | - | 4 | 132 | 4132
- # 0 | - | - | - | - | 4 | 213 | 4213
- # 0 | - | - | - | - | 4 | 231 | 4231
- # 0 | - | - | - | - | 4 | 312 | 4312
- # 0 | - | - | - | - | 4 | 321 | 4321
- # ['1234', '1243', '1324', '1342', '1423', '1432', '2134', '2143', '2314', '2341', '2413', '2431', '3124', '3142', '3214', '3241', '3412', '3421', '4123', '4132', '4213', '4231', '4312', '4321']
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement