From data frame constructor
s1=df.Jobposition.str.len()
s2=df.Jobtype.str.len()
pd.DataFrame({'id':df.id.repeat(s1*s2),
'Jobposition':np.concatenate([np.repeat(x,y) for x,y in zip(df.Jobposition,s2)]),
'Jobtype':np.concatenate(np.repeat(df.Jobtype,s1).values)})
Jobposition Jobtype id
0 6 1 3
1 2 3 4
1 2 6 4
1 2 5 4
1 6 3 4
1 6 6 4
1 6 5 4
2 1 9 43