




from __future__ import annotations

from typing import Any




def     __magic_name__       (				A	:      list[Any]     ):






			'''simple docstring'''







			create_state_space_tree(A,						[],						0     )




def     __magic_name__       (				A	:      list[Any],						A	:      list[Any],						A	:      int     ):






			'''simple docstring'''







			if index == len(A     ):
						print(A     )
						return

			create_state_space_tree(A,						A,						index + 1     )
			current_subsequence.append(sequence[index]     )
			create_state_space_tree(A,						A,						index + 1     )
			current_subsequence.pop()


if __name__ == "__main__":
		__lowerCAmelCase	:       list[Any]     =	[3, 1, 2, 4]
		generate_all_subsequences(seq)

		seq.clear()
		seq.extend(['A', 'B', 'C'])
		generate_all_subsequences(seq)












def     __magic_name__       (				A	:      str,						A	:      str     ):






			'''simple docstring'''







			def get_matched_characters(A	:      str,						A	:      str     ) -> str:
						a					=    []
						a					=    min(len(_stra     ),						len(_stra     )     ) // 2
						for i, l in enumerate(_stra     ):
									a					=    int(max(0,						i - limit     )     )
									a					=    int(min(i + limit + 1,						len(_stra     )     )     )
									if l in _stra[left:right]:
												matched.append(A     )
												a					=    F"""{_stra[0:_stra.index(A     )]} {_stra[_stra.index(A     ) + 1:]}"""

						return "".join(A     )

			# matching characters
			a					=    get_matched_characters(A,						A     )
			a					=    get_matched_characters(A,						A     )
			a					=    len(A     )

			# transposition
			a					=    (
			    len([(ca, ca) for ca, ca in zip(A,						A     ) if ca != ca]     ) // 2
			)

			if not match_count:
						a					=    0.0
			else:
						a					=    (
						    1
						    / 3
						    * (
						        match_count / len(A     )
						        + match_count / len(A     )
						        + (match_count - transpositions) / match_count
						    )
						)

			# common prefix up to 4 characters
			a					=    0
			for ca, ca in zip(stra[:4],						stra[:4]     ):
						if ca == ca:
									prefix_len += 1
						else:
									break

			return jaro + 0.1 * prefix_len * (1 - jaro)


if __name__ == "__main__":
		import doctest

		doctest.testmod()
		print(jaro_winkler('hello', 'world'))






