Establish relationship between two sets of data
I think you may be able to shed light on relationships between features and parts using association rule learning.  You can treat the parts and features similarly to items in a market basket.

Updated:

A = {('P1', 'F1', 'F2', 'F3'),
     ('P2', 'F2', 'F4', 'F6'),
     ('P3', 'F1', 'F6', 'F8')}

B = {('P1', 'M1', 'M2', 'M3'),
    ('P2', 'M4', 'M7'),
    ('P3', 'M1', 'M5', 'M7', 'M9', 'M10')}

parts = {'P1','P2','P3'}

basket = {}
for k in parts:
    temp = []
    for a in A:
        if k in a:
            temp += list(a)
    for b in B:
        if k in b:
            temp += list(b)
    temp.remove(k)
    basket[k] = temp


Then use each value in the basket dictionary as a basket.