List<Move> moveList = new ArrayList<Move>();
for (ListIterator<ShiftAssignment> leftIt = shiftAssignmentList.listIterator(); leftIt.hasNext();) {
ShiftAssignment leftShiftAssignment = leftIt.next();
for (ListIterator<ShiftAssignment> rightIt = shiftAssignmentList.listIterator(leftIt.nextIndex()); rightIt.hasNext();) {
ShiftAssignment rightShiftAssignment = rightIt.next();
moveList.add(new ShiftAssignmentSwapMove(leftShiftAssignment, rightShiftAssignment));
}
}
return moveList;
}