Skip to content

Instantly share code, notes, and snippets.

@leveryd
Created May 17, 2024 10:23
Show Gist options
  • Save leveryd/997dfd20665a056539f2e61216138961 to your computer and use it in GitHub Desktop.
Save leveryd/997dfd20665a056539f2e61216138961 to your computer and use it in GitHub Desktop.
笛卡尔积
import copy
def _get_match_rule(lef_element, element_list):
ret = []
if len(element_list) == 1:
for i in element_list[0]:
new_left_element = copy.copy(lef_element)
new_left_element.append(i)
ret.append(new_left_element)
else:
for i in element_list[0]:
new_left_element = copy.copy(lef_element)
new_left_element.append(i)
for ii in _get_match_rule(new_left_element, element_list[1:]):
ret.append(ii)
return ret
print(_get_match_rule([], [[1, 2]]))
print(_get_match_rule([], [[1, 2], [3, 4]]))
print(_get_match_rule([], [[1, 2], [3, 4], [5, 6, 7]]))
@leveryd
Copy link
Author

leveryd commented May 17, 2024

from itertools import product


def cartesian_product(element):
    return [list(combination) for combination in product(*element)]


elements = [[1, 2], [3, 4], [5, 6]]
result = cartesian_product(elements)
print(result)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment