Populate a networkx graph with tuples of varying lengths
Tuples of varying lengths are a bit unusual.  Perhaps those would be better as lists instead.

itertools is your friend.  You can write, equivalently:

import itertools

G = nx.Graph()
for node_tuple in node_list:
    G.add_edges_from(itertools.product(node_tuple, node_tuple))


If you want to list each pair of nodes just once instead of twice, and including self-edges use itertools.combinations_with_replacement(node_tuple, 2) instead.