Here you can find the source of permute(List s1, List s2)
public static List<List> permute(List s1, List s2)
//package com.java2s; /************************************************************************** * Copyright 2008 Jules White * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* * See the License for the specific language governing permissions and * * limitations under the License. * **************************************************************************/ import java.util.ArrayList; import java.util.Collection; import java.util.List; public class Main { public static List<List> permute(List s1, List s2) { List result = new ArrayList<List>(s1.size() * s2.size()); for (int i = 0; i < s1.size(); i++) { Object o1 = s1.get(i); for (int j = 0; j < s2.size(); j++) { Object o2 = s2.get(j); ArrayList item = new ArrayList(); if (o1 instanceof Collection) item.addAll((Collection) o1); else item.add(o1);//from w w w . ja va 2 s. c o m } } return result; } }