code: def _edges_cross_nodes(G, H):
      if G.is_multigraph():
          for u, v, k, d in G.edges(data=True, keys=True):
              for x in H:
                  yield (u, x), (v, x), k, d
      else:
          for u, v, d in G.edges(data=True):
              for x in H:
                  if H.is_multigraph():
                      yield (u, x), (v, x), None, d
                  else:
                      yield (u, x), (v, x), d
  
file_path: networkx/networkx/algorithms/operators/product.py
imports: from itertools import product
  import networkx
  from networkx.utils import not_implemented_for
label_desc: Use image node_id 5 for calling a global function with example usage: _edges_cross_nodes(G, H) without return types