<｜begin▁of▁sentence｜>### Instruction:
Given a simple, connected, undirected bipartite graph with nodes [1, 2, 3, 4] in one partition, and ['a', 'b', 'c', 'd'] in the other, and edges connecting each vertex from the first partition to all vertices in the second partition (forming a complete bipartite graph), what is the extendability of this graph?
### Response:
import networkx as nx
from networkx.algorithms.matching import maximal_matching

# Create a bipartite graph
G = nx.Graph()
G.add_nodes_from([1, 2, 3, 4], bipartite=0)
G.add_nodes_from(['a', 'b', 'c', 'd'], bipartite=1)
G.add_edges_from([(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b'), (3, 'c'), (3, 'd'), (4, 'c'), (4, 'd')])

# Assuming G is bipartite, connected, and has a perfect matching,
# we find its extendability.
extendability = nx.algorithms.bipartite.maximal_extendability(G)
print('Extendability:', extendability)
<|EOT|>
