The main problem of knot theory is to differentiate knots. To distinguish knots one needs a knot invariant, which is a function that gives a single value on isotopic knots. The first step toward finding knot invariants was made by Reidemeister by introducing the Reidemeister moves. Even before the discovery of the Reidemeister moves, Alexander defined geometrically a polynomial knot invariant which was later defined by Conway in 1970 in terms of a skein relation. In 1985, V. F. R. Jones revolutionized the knot theory by defining the Jones polynomial as a knot invariant. However, in 1987 L. H. Kauffman introduced a stat-sum model construction of the Jones polynomial that was purely combinatorial and remarkably simple. Our contribution to knot theory includes a general recurrence relation for the Jones polynomial that helps in proving many qualitative results and an expansion formula that drastically reduces the computations in calculating Jones polynomials. We hope this work is not only useful for people who work in classical knot theory but also for people who work in virtual knot theory.