Cartesian products in bash?

Given a directory with 2 sub-directories, A and B, this snippet will output:

quartz ~/>; ls
A B
quartz ~/> ls -d1 */../*/ | sed 's;/../;->;g;s;/;;g'
A->A
A->B
B->A
B->B