I agree that your problem could be solved with Power Query quite easily, but if you want a formula, with Office 365, you can do:
=LET( pilots, A2:B6,
genPerms, LAMBDA(matrix,
LET( A, matrix, B,ROWS(A),
C,COLUMNS(A), D,IF(A="", NA(),A),
E,MAKEARRAY(B,C,LAMBDA(rw,cl,INDEX(SORT(INDEX(D,0,cl)),rw))),
F,BYCOL(E,LAMBDA(cl,COUNTA(FILTER(cl,NOT(ISERROR(cl)))))),
G,MAKEARRAY(PRODUCT(F),C,LAMBDA(rw,cl,INDEX(E,MOD(CEILING(rw/IFERROR(PRODUCT(INDEX(F,SEQUENCE(C-cl,,cl+1))),1),1)-1,INDEX(F,cl))+1,cl))),
UNIQUE(G)) ),
vs, LAMBDA(array1,array2,
LET( rows1, ROWS( array1 ), rows2, ROWS( array2 ),
columns1, COLUMNS( array1 ), columns2, COLUMNS( array2 ),
rSeq, SEQUENCE( rows1 + rows2 ),
cSeq, SEQUENCE(, MAX( columns1, columns2 ) ),
IF( ISOMITTED(array1),
array2,
IF( ISOMITTED(array2),
array1,
IF( rSeq <= rows1,
INDEX( IF( array1 = "", "", array1), rSeq, cSeq ),
INDEX( IF( array2 = "", "", array2), rSeq-rows1, cSeq ) ) ) ) ) ),
bluePilots, genPerms( CHOOSE( {1,2}, IF( ISBLANK(INDEX( pilots,,1)),"",INDEX( pilots,,1)),IF( ISBLANK(INDEX( pilots,,1)),"",INDEX( pilots,,1)) ) ),
vs( genPerms(pilots), FILTER( bluePilots, INDEX( bluePilots,,1) < INDEX( bluePilots,,2) ) ) )
where A2:B6 is the array of pilots on Blue and Red. This is really heavy, but it is because I just banged together already built and tested formulas that generate all permutations (using the method from JvdV) and then modified them to accommodate the Blue on Blue situation. A much leaner approach is possible, but would require a lot of effort and testing and perhaps genius I don't possess.
I also purposefully avoided making registered LAMBDA's because it would require a long explanation.

Office Insiders Approach
If you are part of the Office Insiders program you can use the HSTACK and VSTACK which will radically reduce the bloat of this formula:
=LET( pilots, A2:B6,
genPerms, LAMBDA(matrix,
LET( A, matrix, B,ROWS(A),
C,COLUMNS(A), D,IF(A="", NA(),A),
E,MAKEARRAY(B,C,LAMBDA(rw,cl,INDEX(SORT(INDEX(D,0,cl)),rw))),
F,BYCOL(E,LAMBDA(cl,COUNTA(FILTER(cl,NOT(ISERROR(cl)))))),
G,MAKEARRAY(PRODUCT(F),C,LAMBDA(rw,cl,INDEX(E,MOD(CEILING(rw/IFERROR(PRODUCT(INDEX(F,SEQUENCE(C-cl,,cl+1))),1),1)-1,INDEX(F,cl))+1,cl))),
UNIQUE(G)) ),
bluePilots, genPerms( HSTACK(INDEX( pilots,,1),INDEX( pilots,,1)) ),
VSTACK( genPerms(pilots), FILTER( bluePilots, INDEX( bluePilots,,1) < INDEX( bluePilots,,2) ) ) )