

from __future__ import annotations





def  __lowerCamelCase     (			UpperCamelCase__       ,							UpperCamelCase__				):







							'''simple docstring'''






							snake_case_          =   []
							create_all_state(1       ,							UpperCamelCase__       ,							UpperCamelCase__       ,							[]       ,							UpperCamelCase__				)
							return result





def  __lowerCamelCase     (			UpperCamelCase__       ,							UpperCamelCase__       ,							UpperCamelCase__       ,							UpperCamelCase__       ,							UpperCamelCase__       ,							):







							'''simple docstring'''






							if level == 0:
														total_list.append(current_list[:]				)
														return

							for i in range(UpperCamelCase__       ,							total_number - level + 2				):
														current_list.append(UpperCamelCase__				)
														create_all_state(i + 1       ,							UpperCamelCase__       ,							level - 1       ,							UpperCamelCase__       ,							UpperCamelCase__				)
														current_list.pop()





def  __lowerCamelCase     (			UpperCamelCase__				):







							'''simple docstring'''






							for i in total_list:
														print(*UpperCamelCase__				)


if __name__ == "__main__":
					_UpperCAmelCase		:       str						    =	4
					_UpperCAmelCase		:       Tuple						    =	2
					_UpperCAmelCase		:       Optional[int]						    =	generate_all_combinations(n, k)
					print_all_state(total_list)







# Lint as: python3
import itertools
import os
import re


_UpperCAmelCase		:       str						    =	re.compile(R"""([A-Z]+)([A-Z][a-z])""")
_UpperCAmelCase		:       Dict						    =	re.compile(R"""([a-z\d])([A-Z])""")

_UpperCAmelCase		:       Dict						    =	re.compile(R"""(?<!_)_(?!_)""")
_UpperCAmelCase		:       Tuple						    =	re.compile(R"""(_{2,})""")

_UpperCAmelCase		:       Any						    =	R"""^\w+(\.\w+)*$"""

_UpperCAmelCase		:       List[str]						    =	R"""<>:/\|?*"""





def  __lowerCamelCase     (			UpperCamelCase__				):







							'''simple docstring'''






							snake_case_          =   _uppercase_uppercase_re.sub(r'\1_\2'       ,							UpperCamelCase__				)
							snake_case_          =   _lowercase_uppercase_re.sub(r'\1_\2'       ,							UpperCamelCase__				)
							return name.lower()





def  __lowerCamelCase     (			UpperCamelCase__				):







							'''simple docstring'''






							snake_case_          =   _single_underscore_re.split(UpperCamelCase__				)
							snake_case_          =   [_multiple_underscores_re.split(UpperCamelCase__				) for n in name]
							return "".join(n.capitalize() for n in itertools.chain.from_iterable(UpperCamelCase__				) if n != ''				)





def  __lowerCamelCase     (			UpperCamelCase__				):







							'''simple docstring'''






							if os.path.basename(UpperCamelCase__				) != name:
														raise ValueError(F'''Should be a dataset name, not a path: {name}'''				)
							return camelcase_to_snakecase(UpperCamelCase__				)





def  __lowerCamelCase     (			UpperCamelCase__       ,							UpperCamelCase__				):







							'''simple docstring'''






							if os.path.basename(UpperCamelCase__				) != name:
														raise ValueError(F'''Should be a dataset name, not a path: {name}'''				)
							if not re.match(_split_re       ,							UpperCamelCase__				):
														raise ValueError(F'''Split name should match \'{_split_re}\'\' but got \'{split}\'.'''				)
							return F'''{filename_prefix_for_name(UpperCamelCase__				)}-{split}'''





def  __lowerCamelCase     (			UpperCamelCase__       ,							UpperCamelCase__       ,							UpperCamelCase__       ,							UpperCamelCase__=None				):







							'''simple docstring'''






							snake_case_          =   filename_prefix_for_split(UpperCamelCase__       ,							UpperCamelCase__				)
							if filetype_suffix:
														prefix += F'''.{filetype_suffix}'''
							snake_case_          =   os.path.join(UpperCamelCase__       ,							UpperCamelCase__				)
							return F'''{filepath}*'''





def  __lowerCamelCase     (			UpperCamelCase__       ,							UpperCamelCase__       ,							UpperCamelCase__       ,							UpperCamelCase__=None       ,							UpperCamelCase__=None				):







							'''simple docstring'''






							snake_case_          =   filename_prefix_for_split(UpperCamelCase__       ,							UpperCamelCase__				)
							snake_case_          =   os.path.join(UpperCamelCase__       ,							UpperCamelCase__				)

							if shard_lengths:
														snake_case_          =   len(UpperCamelCase__				)
														snake_case_          =   [F'''{prefix}-{shard_id:05d}-of-{num_shards:05d}''' for shard_id in range(UpperCamelCase__				)]
														if filetype_suffix:
																					snake_case_          =   [filename + F'''.{filetype_suffix}''' for filename in filenames]
														return filenames
							else:
														snake_case_          =   prefix
														if filetype_suffix:
																					filename += F'''.{filetype_suffix}'''
														return [filename]




